tg tcc automaÇÃo ufabc - operação remota de mesa móvel utilizando visão computacional

120
UNIVERSIDADE FEDERAL DO ABC Wilson Silva Sousa OPERAÇÃO REMOTA DE MESA MÓVEL UTILIZANDO VISÃO COMPUTACIONAL Trabalho de Graduação de Engenharia de Instrumentação, Automação e Robótica Aluno: Wilson Silva Sousa Prof° Orientadora: Dra. Elvira Rafikova - Santo André, 2015 -

Upload: wilson-silva-sousa

Post on 15-Dec-2015

79 views

Category:

Documents


57 download

DESCRIPTION

TG (TCC) de Engenharia de Automação, Instrumentação e Robótica da UFABC. Aborda as áreas de Visão Computacional, Eletrônica, Mecânica e programação em C e C++.

TRANSCRIPT

Page 1: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

UNIVERSIDADE FEDERAL DO ABC

Wilson Silva Sousa

OPERAÇÃO REMOTA DE MESA MÓVEL UTILIZANDO VISÃO

COMPUTACIONAL

Trabalho de Graduação de Engenharia de Instrumentação,

Automação e Robótica

Aluno: Wilson Silva Sousa

Prof° Orientadora: Dra. Elvira Rafikova

- Santo André, 2015 -

Page 2: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

Wilson Silva Sousa

OPERAÇÃO REMOTA DE MESA MÓVEL UTILIZANDO VISÃO

COMPUTACIONAL

Trabalho de Graduação apresentado a

Universidade Federal do ABC, como

requisito parcial para obtenção do diploma

no curso de graduação em Engenharia de

Instrumentação, Automação e Robótica.

Orientadora: Profª Dra. Elvira Rafikova

- Santo André, 2015 -

Page 3: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

AGRADECIMENTOS

A Deus, pela oportunidade de viver, pensar, realizar e amar.

À minha família, por todo o apoio durante esta jornada.

Aos amigos e familiares, que com boa vontade me auxiliaram neste trabalho.

À minha orientadora, por ter acreditado neste projeto.

E a todos aqueles que, durante esses anos, acompanharam de perto esta

caminhada, oferecendo seu apoio e muitas vezes sua compreensão.

Page 4: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

OPERAÇÃO REMOTA DE MESA MÓVEL UTILIZANDO VISÃO

COMPUTACIONAL

Wilson Silva Sousa

Março / 2015

Orientadora: Profª Dra. Elvira Rafikova

RESUMO

Por questões de segurança e ergonomia, seja na indústria ou em outras áreas,

por diversas vezes se torna necessário operar mecanismos remotos, situados em

ambientes perigosos, inacessíveis ou distantes. Nestes casos o operador atuante

geralmente utiliza equipamentos portáteis dotados de botões, joystick’s, interfaces

gráficas ou outros meios que possibilitem controlar movimentos. Visando propor uma

forma alternativa de controle remoto de sistemas de movimentação, é desenvolvido

neste trabalho um sistema de visão computacional que permita a um operador

manusear uma mesa móvel bidirecional, por meio da movimentação de um objeto em

frente a uma câmera. No sistema proposto, as imagens do objeto de referência são

captadas por uma webcam e analisadas por um software que determina as

coordenadas deste objeto, via técnicas de visão computacional. As coordenadas

obtidas são enviadas para o circuito eletrônico de controle, que aciona os atuadores

da mesa, posicionando-a nas coordenadas correspondentes. Através dos projetos

mecânico e eletrônico, e também o desenvolvimento dos softwares de visão e de

controle de movimentação, pode-se implementar um sistema onde a mesa se desloca

junto com o objeto, de acordo com as coordenadas exibidas na interface gráfica.

Palavras-chave: Operação remota. Visão Computacional. Automação.

Page 5: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

REMOTE OPERATION OF SLIDING TABLE USING COMPUTER

VISION

Wilson Silva Sousa

March / 2015

Advisor: Profª Dra. Elvira Rafikova

ABSTRACT

For reasons of safety and ergonomics, whether in industry or in other areas,

many times it is necessary to operate remote mechanisms, situated in dangerous

environments, distant or inaccessible. In these cases the acting operator generally

uses portable equipment fitted with buttons, joystick's, graphical user interfaces or

other means which allow to control movements. In order to propose an alternative way

of remote control of drive systems, is developed in this work a computer vision system

that allows an operator to handle a bidirectional mobile table, through the movement

of an object in front of a camera. In the proposed system, the reference object images

are captured by a webcam and analyzed by a software that determines the coordinates

of this object, via computer vision techniques. The coordinates obtained are sent to the

control electronic circuit, which triggers the table actuators, positioning it in the

corresponding coordinates. Through mechanical and electronic projects, and also the

development of the software of vision and movement control, can be implemented a

system where the table moves along with the object, according to the coordinates

displayed in the graphical interface.

Keywords: Remote operation. Computer Vision. Automation.

Page 6: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

LISTA DE FIGURAS

Figura 1. Arquitetura de um sistema de operação remota ................................. 2

Figura 2.(a) Robô industrial FANUC guiado por visão computacional. (b)

Detecção da posição de garrafas para posterior manipulação.......................... 5

Figura 3. (a) Reconhecimento da íris do olho humano. (b) Reconhecimento da

impressão digital ................................................................................................. 5

Figura 4. Detecção de lesões no cérebro humano. ........................................... 6

Figura 5. Arquitetura de um sistema de visão computacional. .......................... 7

Figura 6. Imagem monocromática. ................................................................... 10

Figura 7. Formação de uma imagem colorida. ................................................ 11

Figura 8. Sensor de imagem CCD ................................................................... 11

Figura 9. Princípio de operação dos dispositivos CCD. ................................... 12

Figura 10. Transmissão de um quadro de imagem em dispositivo CCD. ....... 13

Figura 11. Filtro de Bayer. ................................................................................ 14

Figura 12. Espectro eletromagnético. .............................................................. 15

Figura 13. Sensibilidade do olho humano em relação ao comprimento de onda

da radiação eletromagnética incidente. ........................................................... 16

Figura 14. Cores primárias e secundárias em combinação aditiva. ................ 17

Figura 15. Representação gráfica do modelo RGB. ........................................ 19

Figura 16. Representação gráfica do modelo HSV. ........................................ 19

Figura 17. Vizinhança 3x3 definida ao redor de um pixel de coordenadas (x,y).

.......................................................................................................................... 22

Page 7: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

Figura 18. Filtro linear com resposta ao impulso h(x,y). .................................. 23

Figura 19. Matriz representando a imagem à ser filtrada (à esquerda). Máscara

de convolução (à direita) .................................................................................. 24

Figura 20. Determinação de um ponto na imagem filtrada através da operação

de convolução. ................................................................................................. 24

Figura 21. Matriz representando a imagem filtrada. ........................................ 25

Figura 22. Máscara 7x7 do filtro gaussiano para σ=1. ..................................... 26

Figura 23. Mesa X-Y industrial para posicionamento ...................................... 28

Figura 24. Sistema de posicionamento X-Y em detalhe. ................................. 29

Figura 25. Diagrama simplificado de um microcontrolador. ............................. 31

Figura 26. Pinagem do microcontrolador 18F4550. ......................................... 34

Figura 27. Pinagem do microcontrolador 18F4550. ......................................... 34

Figura 28. Sinal elétrico padrão RS-232. ......................................................... 37

Figura 29. Conector DB9 fêmea. ...................................................................... 38

Figura 30: Conector USB, designação dos pinos e cores dos fios

correspondentes. .............................................................................................. 40

Figura 31. Conector DB9 fêmea. ...................................................................... 40

Figura 32. Sinal codificado em NRZI................................................................ 41

Figura 33. Motores de passo. ........................................................................... 44

Figura 34: Funcionamento simplificado de um motor de passo. ..................... 45

Figura 35. Motor de passo de relutância variável. ........................................... 46

Figura 36. Motor de passo de relutância variável. ........................................... 46

Figura 37. Motor de passo Híbrido. .................................................................. 47

Page 8: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

Figura 38. Motor de passo Híbrido. .................................................................. 48

Figura 39. Tipos de ligações. À esquerda um motor bipolar de 2 fases e 4 fios.

À direita um motor unipolar de 2 fases e 6 fios. ............................................... 49

Figura 40. Sequência de acionamento, com uma fase por vez. ...................... 49

Figura 41. Sequência de acionamento, com duas fases simultaneamente. ... 50

Figura 42. Área de aplicação do motion control industrial. .............................. 51

Figura 43. Arquitetura típica de um sistema de motion control industrial. ....... 52

Figura 44. Deteminação dos pontos de origem de cada pixel no algoritmo de

Bresenham. ...................................................................................................... 54

Figura 45. Interpolação linear utilizando o algoritmo de Bresenham. .............. 55

Figura 46: Vista em perspectiva da Mesa Móvel. ............................................ 57

Figura 47. Vista frontal da Mesa Móvel. ........................................................... 57

Figura 48. Vista da lateral esquerda da Mesa Móvel ....................................... 58

Figura 49. Vista superior da Mesa Móvel. ........................................................ 58

Figura 50. Acoplamento elástico utlizado. ....................................................... 60

Figura 51. Vista em perspectiva da mesa móvel montada. ............................. 61

Figura 52. Vista superior da mesa móvel montada.......................................... 61

Figura 53. Protótipo montado sobre protoboard. ............................................. 65

Figura 54. Corrente consumida para um eixo acionado. ................................. 65

Figura 55. Fluxograma simplificado do aplicativo de visão computacional. .... 69

Figura 56. Telas de ajuste de valores e visualização. ..................................... 72

Figura 57. Paleta de cores do Paint. ................................................................ 73

Page 9: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

Figura 58. Tela principal do aplicativo. ............................................................. 74

Figura 59. Fluxograma simplificado do firmware de movimentação. ............... 77

Figura 60.Porta virtual COM5 criada. ............................................................... 79

Figura 61.Requisições enviadas pelo firmware. .............................................. 80

Figura 62.Resposta as requisições pelo software de visão. ............................ 81

Figura 62. Desenho técnico do CONJUNTO. .................................................. 90

Figura 63. Desenho técnico - BASE 1.............................................................. 91

Figura 65. Desenho técnico – BASE 3. ............................................................ 93

Figura 66. Desenho técnico - EIXO GUIA. ....................................................... 94

Figura 67. Desenho técnico – EIXO TR1. ........................................................ 95

Figura 68. Desenho técnico – EIXO TR2. ........................................................ 96

Figura 69. Desenho técnico – EIXO TR3. ........................................................ 97

Figura 70. Desenho técnico - EIXO TR4. ......................................................... 98

Figura 71. Desenho técnico – GUIA LINEAR. ................................................. 99

Figura 72. Desenho técnico – MANCAL GUIAS. ........................................... 100

Figura 73. Desenho técnico – MANCAL POLIAS. ......................................... 101

Figura 74. Desenho técnico - POLIA.............................................................. 102

Figura 75. Desenho técnico - SUPORTE DO MOTOR. ................................. 103

Figura 76. Circuito – MÓDULO DE CONTROLE. .......................................... 104

Figura 77. Circuito – MÓDULO DE POTÊNCIA. ............................................ 105

Figura 78. Circuito – MOTORES DE PASSO. ............................................... 106

Page 10: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

LISTA DE TABELAS

Tabela 1: Lista de componentes do projeto eletrônico. ................................... 64

Quadro 1: Cronograma de atividades .............................................................. 85

Page 11: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

LISTA DE ABREVIATURAS

A/D Analógico para Digital

ADC Audio Class Device

BPS Bits Per Second

CAD Computer Aided Design

CCD Charge Coupled Device

CI Circuito Integrado

CDC Communication Device Class

CMOS Complementary Metal Oxide Silicon

CNC Computer Numeric Control

CPU Central Unit Processing

DCE Data Communication Equipment

DTE Data Terminal Equipment

EEPROM Eletrically Erasable Programmable Read Only Memory

EIA Electronic Industries Association

EPROM Erasable Programmable Read Only Memory

HID Human Interface Device

HSV Hue, Saturation, Value

ICSP In Circuit Serial Programming

IDE Integrated Development Environment

IHM Interface Humano-Máquina

LCD Liquid Cristal Display

MSC Mass storage Class

Page 12: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

NRZI Non Return to Zero Inverted

PIC Programmable Interface Controller

PWM Pulse Width Modulation

RAM Random Access Memory

RGB Red, Green, Blue

ROM Read Only Memory

SPI Serial Peripheral Interface

UFABC Universidade Federal do ABC

ULA Unidade Lógica e Aritmética

USART Universal Synchronous Asynchronous ReceiverTransmitter

USB Universal Serial Bus

Page 13: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

Sumário

1. Objetivo ........................................................................................................... 1

2. Justificativas ................................................................................................... 1

3. Fundamentação teórica .................................................................................. 3

3.1. Visão Computacional ...................................................................................................... 3

3.1.1. Histórico ................................................................................................................... 4

3.1.2. Aplicações ............................................................................................................... 4

3.2. Sistemas de visão computacional ................................................................................... 6

3.3. Processamento digital de imagens ................................................................................. 8

3.4. Imagens digitais .............................................................................................................. 9

3.5. Dispositivos de aquisição de imagens digitais .............................................................. 11

3.6. Imagens coloridas ......................................................................................................... 13

3.7. Conversão e armazenamento ....................................................................................... 14

3.8. Modelos de representação de cores ............................................................................. 14

3.8.1. Modelo RGB .......................................................................................................... 18

3.8.2. Modelo HSV ........................................................................................................... 19

3.9. Limiarização .................................................................................................................. 20

3.10. Filtragem ..................................................................................................................... 21

3.10.1. Filtragem espacial ................................................................................................ 22

3.10.2. Operação de convolução com máscaras ............................................................. 23

3.10.3. Suavização .......................................................................................................... 25

3.11. Momentos geométricos de uma imagem .................................................................... 27

3.12. Mesa móvel ................................................................................................................ 28

3.13. Software de Visão Computacional .............................................................................. 30

3.13.1. Linguagem programação e ambiente de desenvolvimento .................................. 30

3.13.2. Biblioteca OpenCV............................................................................................... 30

3.14. Microcontroladores ..................................................................................................... 30

3.14.1. Microcontrolador PIC18F4550 ............................................................................. 33

3.15. Comunicação entre Microcontrolador e Computador ................................................. 36

3.15.1. USART ................................................................................................................. 36

3.15.2. RS-232 ................................................................................................................. 37

3.15.3. USB ..................................................................................................................... 38

Page 14: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

3.15.4. Microchip Libraries Application ............................................................................ 43

3.16. Motores de Passo ....................................................................................................... 43

3.17. Método de interpolação de movimentos utilizando motores de passo ........................ 50

3.17.1. Motion Control ..................................................................................................... 51

3.17.2. Algoritmo de Interpolação Linear ......................................................................... 53

4. Resultados .................................................................................................... 56

4.1. Mesa Móvel .................................................................................................................. 56

4.1.1. Projeto ................................................................................................................... 56

4.1.2. Confecção, montagem e resultado final ................................................................. 59

4.2. Circuitos Eletrônicos Controle e Potência ..................................................................... 62

4.2.1. Projeto ................................................................................................................... 62

4.2.2. Lista de Materiais ................................................................................................... 64

4.2.3. Montagem .............................................................................................................. 64

4.3. Software........................................................................................................................ 66

4.3.1. Aplicativo de Visão Computacional ........................................................................ 66

4.3.2. Firmware de movimentação da mesa .................................................................... 74

4.4. Testes de comunicação USB-RS-232 entre Microcontrolador e Computador .............. 79

5. Conclusões ................................................................................................... 82

5.1. Trabalhos e melhorias futuras ...................................................................................... 83

6. Cronograma .................................................................................................. 85

7. Referências bibliográficas ............................................................................ 86

8. Apêndice A – Desenhos Técnicos da Mesa Móvel ...................................... 90

9. Apêndice B – Circuitos Eletrônicos ............................................................ 104

Page 15: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

1

1. Objetivo

O presente trabalho tem como objetivo o desenvolvimento de um sistema de

visão computacional que permita realizar a operação remota de uma mesa móvel de

duas direções.

Como objetivos específicos esse trabalho visa:

• Realizar o estudo dos conceitos e técnicas de visão computacional para

a extração de características de imagens. Estudar componentes

mecânicos e elétricos, métodos e algoritmos, que possibilitem de uma

forma geral a realização do objetivo final;

• Criar um protótipo de sistema de visão computacional que implemente

algoritmos para extração automática de características (cor, linha, forma

geométrica);

• Realizar o projeto, confecção e montagem de uma plataforma móvel

(mesa) a ser operada remotamente;

• Projetar e implementar os circuitos eletrônicos para comunicação com o

computador e para o acionamento da plataforma móvel;

• Totalizar a construção do protótipo de uma mesa móvel remotamente

operada com o auxílio de um sistema de visão computacional.

2. Justificativas

Dada a crescente demanda por segurança nas indústrias, e implementação de

normas regulamentadoras, é de fundamental importância o desenvolvimento de

técnicas adequadas que permitam a manipulação segura, de máquinas,

equipamentos e materiais. Nesse âmbito, quando a acessibilidade ao local é restrita,

como em ambientes agressivos, ou mesmo por questões de conforto e ergonomia,

uma das possíveis formas de se implementar a operação de equipamentos diversos

é através da operação remota.

Page 16: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

2

A operação remota, ou teleoperação é definida basicamente como a operação

à distância de sistemas, tais como máquinas, equipamentos, robôs, etc. Esta

tecnologia de controle encontra aplicação para as áreas aeroespacial, médica,

industrial, militar, entre outras. No que diz respeito, a arquitetura de um sistema

remotamente operado, segundo Nof(1985) deve haver uma unidade de controle

responsável por receber os comandos do operador, uma unidade remota que

responde aos comandos e efetua a ação, e um canal de comunicação entre ambos.

Figura 1. Arquitetura de um sistema de operação remota. [Fonte: Adaptado de

NOF(1985) ]

Para a implementação da unidade de controle do sistema de operação remota,

as possibilidades são grandes, variando conforme a aplicação. Podem ser utilizados

dispositivos manuais com botoeiras e chaves seletoras, dispositivos do tipo joystick,

IHM’s industriais, Tablet’s, etc. Dentre estas maneiras é possível também empregar

técnicas de visão computacional, onde um sistema de visão é capaz de converter

comandos visuais em comandos para a unidade remota.

O campo da visão computacional tem sofrido um grande avanço nas últimas

décadas. Dada também a gama de aplicações que os sistemas de visão tem, os

recursos de programação e softwares dedicados a visão computacional são cada vez

maiores. Grandes empresas desenvolvedoras de softwares, como National

Instruments, com o Labview, ou MathWorks com o MatLAB, possuem em seus

softwares bibliotecas de comandos inteiramente dedicados a visão computacional.

Mais recentemente, no ano 2000, a Intel criou a biblioteca de visão computacional

Page 17: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

3

OpenCV (Open Source Computer Vision), que segue o modelo de software livre e

possui recursos que facilitam o desenvolvimento de softwares de visão.

Sendo assim, devido as razões citadas, a visão computacional pode ser uma

ferramenta útil no desenvolvimento de sistemas de operação remota. Neste caso

teríamos uma arquitetura onde não só a realimentação, como também a entrada do

sistema, seria feita de maneira visual.

3. Fundamentação teórica

3.1. Visão Computacional

Visão computacional, também conhecida como Visão de Máquina, é um campo

de pesquisa que tem avançado muito nas últimas décadas, tendo inúmeras

aplicações, sejam industriais, médicas, na agricultura, na astronomia, etc.

É possível entender a visão computacional como um conjunto de técnicas que

visam dotar as máquinas com capacidade visual semelhante à dos seres humanos,

não só em termos de aquisição, como também de interpretação. Segundo

Shapiro(2001) o principal objetivo desta área é analisar imagens de objetos do mundo

real e tomar decisões a partir destas. Já para Szeliski(2010) tenta-se criar uma

representação do mundo real através da reconstrução das propriedades das imagens,

tais como forma, cor e iluminação.

O processo de percepção humano envolve características notáveis como:

ampla base de dados de apoio, alta capacidade de processamento e habilidade para

trabalhar sobre variadas condições. Atualmente com os avanços tecnológicos, em

software e hardware, dispõe-se cada vez mais, de condições de reproduzir as duas

primeiras características citadas. Contudo a terceira característica, que consiste em

fazer os sistemas de visão operaram sob condições variadas de luz, posição relativa

de elementos da cena, contraste, entre outras, ainda permanece um desafio.

(MARQUES; VIEIRA, 1999)

Isso geralmente ocorre em áreas de pesquisa, onde há a tentativa de recriar

características perceptivas e cognitivas humanas. Verifica-se que as mais simples

Page 18: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

4

tarefas como, ver, ouvir e falar, são na verdade problemas extremamente complexos

do ponto de vista computacional.

3.1.1. Histórico

Os primeiros trabalhos acadêmicos da área foram realizados em meados dos

anos de 1970. Segundo Szeliski (2010) nesta época os pesquisadores da área tinham

o ambicioso plano de imitar a inteligência humana, dotando robôs com esta habilidade.

Neste âmbito alguns acreditavam que resolver o problema da entrada visual de dados

seria apenas uma fácil etapa rumo à solução de problemas de alto nível como

raciocínio e planejamento. As pesquisas estavam focadas na reconstrução do

ambiente tridimensional a partir das imagens da cena em estudo. Diversos algoritmos

foram desenvolvidos, principalmente aqueles relacionados a detecção de bordas, que

forneciam os blocos utilizados na reconstrução do objeto ou cena tridimensional.

Nos anos de 1980, de com acordo com Szeliski (2010) as pesquisas estiveram

focadas no desenvolvimento de técnicas matemáticas para análise da cena e imagem,

e também no aperfeiçoamento de algoritmos de detecção de bordas e contornos.

Nas décadas de 1990 e 2000, áreas como segmentação de imagens e

reconhecimento de faces tiveram seu desenvolvimento, além das outras áreas já

citadas que continuaram paralelamente sendo desenvolvidas. Uma tendência

observada atualmente, segundo Szeliski(2010) são as pesquisas na área de

reconhecimento visual utilizando técnicas de aprendizado de máquina.

3.1.2. Aplicações

Atualmente a visão computacional se aplica em áreas como: Robótica,

Biometria, Medicina, Sensoriamento Remoto, Meteorologia, entre outras.

Na robótica os sistemas de visão têm larga aplicação. Auxiliam robôs

manipuladores em operações como: montagem, despaletização, inspeção e controle

de qualidade, triagem automática de produtos. Em robôs autônomos a aplicação se

concentra na determinação de obstáculos através da cor e formato, caracterização do

ambiente, localização, identificação de alvos, navegação, etc.

Page 19: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

5

(a) (b)

Figura 2.(a) Robô industrial FANUC guiado por visão computacional. (b)

Detecção da posição de garrafas para posterior manipulação. [Fonte: BASTIAN

Solutions, 2008.]

No campo da biometria, as técnicas de visão computacional têm sido aplicadas

com sucesso, principalmente no reconhecimento de características únicas, como as

digitais dos dedos e a íris do olho.

(a) (b)

Figura 3. (a) Reconhecimento da íris do olho humano. (b) Reconhecimento da

impressão digital. [Fonte: SPIE, 2007.]

Page 20: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

6

Na medicina a visão computacional também encontra ampla aplicação. Os

resultados obtidos auxiliam os profissionais da área no diagnóstico de doenças

diversas, caracterização de lesões e tumores, análises de exames tomográficos,

análise de imagens de ultrassonografia e ressonância magnética, análises de sangue,

entre muitas outras aplicações. (NEVES et. al., 2012)

Figura 4. Detecção de lesões no cérebro humano. [Fonte: BIOCLINICA, 2013.]

3.2. Sistemas de visão computacional

Segundo Marques (1999) sistemas de visão computacional são sistemas com

a capacidade de adquirir, processar e interpretar imagens de uma determinada cena

ou objeto. Este sistema tem uma arquitetura que pode ser descrita conforme o

diagrama de blocos abaixo:

Page 21: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

7

Figura 5. Arquitetura de um sistema de visão computacional. [Fonte:

Marques(1999)]

A primeira etapa realizada pelo sistema de visão é a aquisição de imagens.

Neste passo um equipamento composto basicamente de lentes, sensores ópticos e

circuitos eletrônicos, convertem em sinais elétricos digitais as imagens projetadas

sobre o sensor. (MARQUES; VIEIRA, 1999)

A etapa de pré-processamento visa corrigir ou minimizar defeitos gerados no

processo de aquisição. Ruídos, contraste ou brilho inadequados são possíveis

defeitos. O objetivo é produzir uma nova imagem de maior qualidade para ser utilizada

nas etapas seguintes.

Na etapa de segmentação, segundo Gonzales (2000), o objetivo é basicamente

produzir uma imagem em que o objeto ou a região de interesse estejam em evidência

com relação ao resto da imagem, isto é, a cena é subdividida em seus objetos

constituintes.

Page 22: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

8

Na etapa seguinte, de extração de características, define-se a forma de

representação e descrição dos dados. A representação consiste em definir se os

objetos da cena serão representados por suas fronteiras ou por uma região completa.

A representação por fronteira é adequada quando há interesse na forma, dimensões,

cantos ou pontos de inflexão. Já a representação por regiões é adequada quando as

características visadas são propriedades internas como cor ou textura. A descrição

consiste em definir um método de descrever os dados da cena, isto é, extrair

características úteis que possam ajudar nos processos de distinção entre objetos.

Estas características são chamadas também de descritores. (GONZALES; WOODS,

2000)

Por fim, na etapa de reconhecimento e interpretação os descritores são

avaliados, resultando na atribuição de rótulos para cada objeto, e também de um

significado ao conjunto.

A base de conhecimento mostrada no diagrama da figura 5, se refere ao

conhecimento prévio que se têm da cena analisada e quais são os resultados

esperados. Esta base de conhecimento é de fundamental importância nos sistemas

de visão computacional e têm como função direcionar as ações em cada etapa,

definindo quais algoritmos ou processos serão realizados, de modo a produzir um

resultado final adequado. (GONZALES; WOODS, 2000)

3.3. Processamento digital de imagens

Segundo Oppenheim (1999) o processamento de sinais é a área que trata da

manipulação, transformação e representação de sinais. A definição do conceito de

sinal é ampla e engloba praticamente tudo que transporta algum tipo de informação,

sendo também que, os sinais podem ser contínuos ou discretos.

A área de processamento digital de imagens é uma subárea do processamento

de sinais, tendo o mesmo objetivo, utilizando técnicas em comum, e onde os sinais a

serem processados são as imagens digitais.

Em termos gerais, o processamento digital de imagens transforma uma imagem

inicial, em outra que tenha características desejadas para uma determinada aplicação

(VERNON,1991). Para que se alcance este objetivo são utilizadas diversas técnicas

Page 23: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

9

e algoritmos tais como: filtragem, manipulação de histogramas, limiarização, realce,

suavização, etc.

3.4. Imagens digitais

Uma imagem monocromática pode ser definida como uma função

bidimensional f (x,y) de intensidade luminosa, onde x e y é o par de coordenadas

espaciais de um ponto na imagem e f representa o valor do brilho. No caso de imagens

monocromáticas o brilho é chamado também de nível de cinza (GONZALES;

WOODS, 2000).

Para que uma imagem analógica seja convertida em uma imagem digital é

necessário que haja um processo de digitalização. Esse processo consiste em realizar

a amostragem espacial da imagem e quantizar seus níveis de cinza (MARQUES;

VIEIRA, 1999).

Como resultado da amostragem obtêm-se uma imagem subdividida em

regiões, as quais são denominados pixels. O pixel é o menor elemento de uma

imagem e a cada um é atribuído um nível de cinza. Este processo transforma portanto,

uma imagem f (x,y) em uma estrutura análoga a uma matriz, com M linhas e N colunas,

onde cada elemento contém o nível de cinza de um pixel.

, = 0,0 ⋯ 0, − 1⋮ ⋱ ⋮ − 1,0 ⋯ − 1, − 1 (equação 1)

Para uma imagem digital o par M x N corresponde a resolução da imagem.

Na produção de uma imagem digital se forem utilizados n bits para armazenar

o valor de brilho de um pixel, então este pixel poderá assumir valores inteiros na faixa

de 0 a 2n-1, correspondendo a níveis ou tons de cinza diferentes. Neste intervalo de

valores o valor 0 representa a cor preta enquanto o valor 2n-1 representa o branco.

Os valores intermediários são tonalidades de cinza.

Page 24: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

10

A figura 6 abaixo mostra uma imagem digital monocromática com o sistema de

coordenadas convencional:

Figura 6. Imagem monocromática. [Fonte: Adaptado de Marques(1999)]

No caso de imagens coloridas, há uma superposição de funções f (x,y) cada

uma representando uma cor ou característica. No caso de uma representação através

do modelo RGB (R - Red, G - Green, B - Blue) são necessárias três funções f (x,y)

cada uma contendo os valores de brilho para cada cor.

Page 25: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

11

Figura 7. Formação de uma imagem colorida. [Fonte: Adaptado de Wikipedia -

Grayscale.1 ]

3.5. Dispositivos de aquisição de imagens digitais

Dentro os diversos dispositivos de aquisição de imagens destacam-se

atualmente duas tecnologias: os sensores CCD e CMOS.

Figura 8. Sensor de imagem CCD. [Fonte: Wikipedia.2 ]

1 Disponível em: < http://en.wikipedia.org/wiki/Grayscale >, acesso em 15 de março de 2014.

2 Disponível em: < http://en.wikipedia.org/wiki/Charge-coupled_device >, acesso em 15 de março de 2014.

Page 26: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

12

O sensor de imagem CCD (Charge Coupled Device) é uma das tecnologias

mais utilizadas atualmente para aquisição de imagens. Este sensor corresponde a

dispositivo semicondutor de silício que se assemelha a uma matriz de capacitores. A

estrutura desse sensor permite que a carga gerada fique armazenada em uma região

de barreira de potencial, análoga a um recipiente. A interligação com elementos

fotossensíveis permite que a carga armazenada em cada capacitor seja dependente

da intensidade luminosa incidente (MARQUES; VIEIRA, 1999). Por meio de um

controle externo cada capacitor pode transferir sua carga para o capacitor vizinho

conforme a figura 9 abaixo:

Figura 9. Princípio de operação dos dispositivos CCD. [Fonte: PIXCELLENT,

2006]

Quando uma imagem é projetada sobre o arranjo CCD é gerada em cada

capacitor uma quantidade de carga correspondente a intensidade luminosa incidente.

Através de registradores de deslocamento a carga armazenada em uma linha de

elementos é transferida as linhas vizinhas em um deslocamento vertical. Este

processo é repetido até que os valores de uma linha completa cheguem ao registrador

de deslocamento horizontal que então faz a transmissão serial dos dados para um

amplificador. Quando um quadro inteiro de imagem é transmitido o processo inicia-se

novamente. A figura 10 abaixo ilustra este processo:

Page 27: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

13

Figura 10. Transmissão de um quadro de imagem em dispositivo CCD. [Fonte:

PIXCELLENT, 2006]

O sensor de imagem CMOS (Complementary Metal Oxide Silicon) tem

princípios de funcionamento semelhante ao CCD, porém o sinal produzido por cada

elemento é lido individualmente de forma sequencial, através de um processo de

multiplexação. Além disso, este sensor incorpora amplificadores, conversores A/D e

circuitos adicionais de processamento na própria pastilha, ao contrário do CCD que

necessita de circuitos externos.

Com relação ao sensor CCD, o CMOS apresenta baixo consumo de energia,

baixo custo, e menor tamanho. Por outro lado o CCD produz imagens digitais de maior

qualidade, com maior nitidez e possuem maior sensibilidade em ambientes com baixa

iluminação.

3.6. Imagens coloridas

Para aquisição de imagens coloridas é necessária a utilização de um filtro ótico

denominado filtro de Bayer. Cada elemento do filtro tem a função de transmitir a

intensidade luminosa relacionada a somente uma cor, absorvendo as outras. Os sinais

relativos a cada cor são transmitidos individualmente e posteriormente combinados

formando a imagem colorida no formato RGB.

Page 28: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

14

Figura 11. Filtro de Bayer. [Fonte: Adaptado de CHEERS4ALL.3]

3.7. Conversão e armazenamento

Uma vez realizada a captura da imagem e transmitido o sinal analógico

correspondente, para que seja possível o processamento computacional dessa

imagem torna-se necessária a conversão analógico-digital do sinal, de modo que a

imagem passe a ser representada em padrão binário. O dispositivo que realiza essa

conversão é o chamado de dispositivo de captura de quadro ou frame grabber. Sua

função é detectar os limites de cada quadro de imagem e realizar sua amostragem

temporal gerando a imagem digital.

A imagem digital de cada quadro é armazenada em um sistema de memória

volátil denominado frame buffer. Neste dispositivo as imagens ficam prontas para

serem utilizadas seja para o processamento, visualização ou armazenamento em

dispositivos adequados.

3.8. Modelos de representação de cores

Toda a luz visível está compreendida em um pequeno intervalo de frequências

do espectro eletromagnético. Logo, todo tipo de luz que pode ser vista corresponde

3 Disponível em: < http://www.cheers4all.com/2013/03/project-report-of-quadcopter >, acesso em 17 março de 2014.

Page 29: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

15

uma radiação de frequência definida ou geralmente uma combinação de radiações de

frequências distintas dentro do espectro da luz visível. Esse é o caso da luz branca,

que corresponde a mistura de radiações de determinadas frequências abrangendo

todo o espectro visível.

Figura 12. Espectro eletromagnético. [Fonte: Projeto Fotossíntese, 2011.]

As cores dos objetos são resultado da interação entre a luz incidente e o

material do objeto. Se a superfície de um objeto sob iluminação tiver uma cor definida

significa que boa parte da luz refletida tem frequência situada na faixa a que

corresponde esta cor, enquanto as radiações de outras frequências na faixa visível

foram absorvidas pela superfície do objeto (MARQUES; VIEIRA, 1999).

O olho humano é sensível a radiação eletromagnética com comprimento de

onda na faixa de 400 nm a 700 nm aproximadamente, conforme figura 13. Em sua

estrutura interna, o olho possui células fotossensíveis denominadas cones, que são

divididas em três tipos, cada uma possuindo uma curva de sensibilidade, conforme

mostrado na figura 13 abaixo:

Page 30: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

16

Figura 13. Sensibilidade do olho humano em relação ao comprimento de onda

da radiação eletromagnética incidente. [Fonte: DPI, 2011.]

É possível observar que cada tipo de cone possui um máximo de sensibilidade

em torno das cores vermelha (R, do inglês “red”), verde (G, do inglês “green”) e azul

(B, do inglês “blue”). Logo, todas cores possíveis são o resultado da combinação dos

estímulos recebidos por cada tipo de cone, com diferentes intensidades cada,

produzindo assim as diversas sensações de cores. (MARQUES; VIEIRA, 1999)

As cores vermelho, verde e azul são denominadas cores primárias e a partir

destas todas as cores são obtidas. Estas cores se combinadas duas a duas produzem

as chamadas cores secundárias: magenta (vermelho + azul), ciano (verde + azul) e

amarelo (vermelho + verde). Todas as cores primárias se combinadas em

intensidades corretas produzem a luz branca. (GONZALES; WOODS, 2000)

A figura 14 abaixo ilustra essa combinação:

Page 31: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

17

Figura 14. Cores primárias e secundárias em combinação aditiva. [Fonte:

SIDIGICOR, 2012.]

Esta mistura é denominada combinação aditiva de cores. Uma combinação

subtrativa ocorre quando são combinados pigmentos ou corantes, pois neste caso a

cor refletida é resultado da absorção de uma determinada cor. Para este caso as cores

magenta, ciano e amarelo são tidas como cores primárias e suas combinações

resultam em: azul (magenta + ciano), vermelho (magenta + amarelo), verde (ciano +

amarelo). O preto é obtido pela combinação, em devidas proporções, de pigmentos

ou corantes magenta, ciano e amarelo.

Para distinguir uma cor da outra geralmente são usadas as características de

matiz (H, do inglês “hue”), saturação (S, do inglês “saturation”) e brilho (B, do inglês

“brightness”). O matiz representa o comprimento de onda dominante na formação de

uma cor. A saturação corresponde a quantidade de luz branca que se tem misturada

ao matiz, determinando por exemplo, se uma cor é mais clara ou escura. Já o brilho

se refere a intensidade da radiação luminosa. O matiz e a saturação em conjunto

formam a chamada cromaticidade. Uma cor, portanto, pode ser definida por sua

cromaticidade e brilho (GONZALES; WOODS,2000).

As quantidades de vermelho, verde e azul necessárias para formar uma

determinada cor são denominados coeficientes tricromáticos e são definidos por:

Page 32: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

18

= (equação 2)

= (equação 3)

= (equação 4)

Onde R, G e B são as quantidades de vermelho, verde e azul, respectivamente,

presentes em uma cor. Os valores de R, G e B são normalizados entre 0 e 1, e cada

coeficiente r, g e b também situam-se nesta faixa.

Segundo as equações 2, 3 e 4, tem-se que:

+ + = 1 (equação 5)

3.8.1. Modelo RGB

Segundo Gonzales (2000) os modelos de cores servem que se tenha uma

forma padronizada de especificação de uma determinada cor.

O modelo RGB é uma representação cartesiana conforme figura 15 onde cada

ponto representa uma cor. O vermelho, o verde e o azul correspondem ao ponto final

do cubo sobre cada eixo. A origem corresponde ao preto, enquanto o branco está

situado no final da diagonal principal. Essa diagonal contém todos os níveis de cinza.

As cores secundárias, como magenta, ciano e amarelo estão no final de cada aresta

superior. Este cubo é unitário portanto assume-se que os valores de R, G e B estão

normalizados na faixa de 0 a 1.

Page 33: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

19

Figura 15. Representação gráfica do modelo RGB. [Fonte: TEORIA DA COR,

2010]

3.8.2. Modelo HSV

O modelo HSV (H - Hue, S - Saturation, V - Value) é um modelo que define

uma cor pelo matiz, saturação e intensidade (ou brilho). Sua representação é

mostrada na figura 16 abaixo:

Figura 16. Representação gráfica do modelo HSV. [Fonte: Adaptada de SIP4]

4 Disponível em: < http://miac.unibas.ch/SIP/02-Fundamentals.html >, acesso em: 17

de março de 2014.

Page 34: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

20

A conversão entre RGB e HSI é dada através das seguintes equações:

= (equação 6)

= 1 − min", #, $% (equação 7)

& = cos*+ -.**%*.**%-. (equação 8)

3.9. Limiarização

A limiarização ou Thresholding é uma operação de segmentação aplicada

sobre uma imagem, onde cria-se uma distinção clara entre as regiões da mesma. É

geralmente aplicado com o objetivo de distinguir um objeto alvo em uma imagem, de

seu ambiente.

No caso de imagens monocromáticas é definido um limiar de intensidade

luminosa T. Para todos os pixels que tiverem com seus níveis de cinza acima desse

limiar é atribuído um determinado valor de intensidade luminosa, para os pixels que

estiverem abaixo é atribuído outro valor. O resultado é a criação de uma imagem

binarizada.

Em termos matemáticos, se houver uma imagem de entrada f(x,y), e for

definido um limiar T, a limiarização produzirá uma imagem g(x,y) dada por:

, = 0 12 , > 4 12 , ≤ 4 (equação 9)

Page 35: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

21

Onde M e N são níveis de cinza quaisquer.

É possível também fazer a limiarização com base na cor do objeto. Neste caso

atribui-se um valor de intensidade a cada pixel que possuir a cor do objeto, e zero para

todos os pixels que não se enquadram nesta condição. Com isso obtêm-se uma

imagem binária com o objeto em destaque.

3.10. Filtragem

A filtragem é uma operação de pré-processamento que se baseia na frequência

espacial de cada região de uma imagem. A frequência espacial em uma imagem pode

ser entendida como a variação de intensidade de um pixel a outro.

Dependendo da configuração do filtro é possível produzir resultados como

realce, suavização, atenuação de ruídos, detecção de bordas entre outros. A

operação de filtragem pode ser realizada no domínio da frequência ou no domínio

espacial.

No domínio da frequência a filtragem é realizada a partir das transformadas de

Fourier da imagem e do filtro, que são multiplicados. O resultado deve ser levado para

o domínio do espaço através de uma transformada inversa de Fourier, obtendo assim

a imagem resultante. Já a filtragem no domínio espacial é uma operação que age

diretamente sobre os pixels da imagem através de operadores.

Os filtros podem ser classificados também quanto a banda de frequência

espacial sobre a qual operam. Os filtros denominados passa-altas atenuam as partes

da imagem com baixas frequências, que correspondem as regiões de baixa variação

de intensidade dos pixels no espaço, e com efeito realçam as regiões de alta

frequência como bordas e cantos. Os filtros denominados passa-baixas realizam o

inverso atenuando as regiões de alta frequência, cujo resultado é o borramento ou

suavização de certas regiões da imagem. Há também os filtros denominados passa-

faixas que atenuam ou realçam determinado intervalo de frequência e são usados

para remover ou realçar certas regiões selecionadas em uma imagem.

Os filtros utilizados neste trabalho operam no domínio espacial, e uma

explanação mais detalhada é dada nas seções seguintes.

Page 36: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

22

3.10.1. Filtragem espacial

Segundo Gonzales (2000) o termo domínio espacial refere-se a distribuição

espacial dos pixels em uma imagem levando em contas suas variações de intensidade

e os métodos no domínio espacial são aqueles que operam diretamente sobre estes

pixels. Sendo assim uma definição geral das operações no domínio espacial podem

ser expressas por:

, = 4, % (equação 10)

Onde g(x,y) é a imagem resultante; f(x,y) é imagem original e T é um operador

em f, definido sobre uma certa vizinhança de (x,y).

O valor de g na posição (x,y) é dependente de sua vizinhança, de modo que o

operador T age sobre todos os pixels desta subimagem para produzir o resultado final.

(MARQUES; VIEIRA, 1999)

Figura 17. Vizinhança 3x3 definida ao redor de um pixel de coordenadas (x,y).

[Fonte: MARQUES; VIEIRA, 1999.]

Page 37: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

23

3.10.2. Operação de convolução com máscaras

Segundo Szeliski (2011) o tipo mais comum de operador baseado na

vizinhança é a convolução. Neste caso o filtro é um sistema linear, onde o sinal de

entrada é uma imagem f(x,y) e a resposta deste filtro é uma imagem de saída g(x,y).

Sendo assim, se for conhecida a resposta ao impulso h(x,y) deste filtro, é possível

através de uma operação de convolução determinar a resposta do filtro a imagem de

entrada.

Figura 18. Filtro linear com resposta ao impulso h(x,y). [Fonte: MARQUES;

VIEIRA, 1999.]

Conforme Gonzales (2000) a resposta de um filtro através da operação de

convolução em duas dimensões é dada pela seguinte expressão:

, = +67 ∑ 6*+9:; ∑ ℎ − =, − >. =, >7*+@:; (equação 11)

Onde i=0...M-1 e j=0...N-1.Os coeficientes M e N são respectivamente o

número de linhas e colunas de h(x,y).

O termo h(x,y) é uma matriz denominada máscara de convolução espacial.

A equação 11 é a expressão matemática da convolução entre uma máscara e

uma imagem. Este processo pode ser visualizado espacialmente de acordo com a

descrição dada a seguir.

Page 38: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

24

Conforme exemplo dado por Marques(1999) considera-se uma imagem a ser

filtrada e uma máscara de convolução:

Figura 19. Matriz representando a imagem à ser filtrada (à esquerda). Máscara

de convolução (à direita) [Fonte: Adaptado de Marques (1999)]

Para realizar a operação de convolução entre as mesmas, inicialmente a

máscara é espelhada verticalmente e horizontalmente. Em seguida o centro da

máscara é posicionado sobre um ponto (x,y) da imagem. Cada coeficiente da máscara

é multiplicado pelo valor de intensidade do pixel sobre o qual está sobreposto. O novo

valor do pixel na posição (x,y) é dado pela soma destas multiplicações.

Figura 20. Determinação de um ponto na imagem filtrada através da operação

de convolução. [Fonte: Adaptado de Marques (1999)]

Page 39: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

25

Este procedimento é repetido para todos os pixels da imagem original,

resultando então na imagem filtrada:

Figura 21. Matriz representando a imagem filtrada. [Fonte: Adaptado de

Marques (1999)]

3.10.3. Suavização

O efeito de suavização de uma imagem é obtido através de filtros passa-baixas,

cuja função é provocar um efeito de borramento em regiões como bordas e cantos e

também ajuda a eliminar ruídos esparsos na imagem.

O filtro de suavização utilizado neste trabalho é o chamado filtro gaussiano.

Este filtro utiliza a curva gaussiana, também conhecida como distribuição normal, para

realizar o cálculo dos valores de intensidade dos pixels na imagem filtrada.

A curva gaussiana em uma dimensão é dada pela seguinte equação:

# = +√BCD 2* E.

.F. (equação 12)

Onde σ é o desvio padrão. Considera-se que esta distribuição tem média zero

(µ=0), e portanto está centrada em x=0.

Page 40: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

26

A variação da equação acima para duas dimensões é dada por:

#, = +BCD. 2*E.GH.

.F. (equação 13)

A partir da equação 13 é possível calcular os coeficientes da máscara do filtro

gaussiano. Abaixo é mostrada um exemplo uma máscara para este filtro:

Figura 22. Máscara 7x7 do filtro gaussiano para σ=1. [Fonte: CONCI, 2013]

Os coeficientes da máscara do filtro gaussiano diminuem gradualmente do

centro para a borda, tendendo a zero. Segundo Conci(2013) é possível, deste modo,

obter uma suavização mais delicada. Como o peso maior é atribuído ao pixel central

este filtro é capaz de preservar melhor os contornos da imagem com relação a outros

filtros passa-baixas. Por esta razão este filtro é utilizado geralmente antes da

aplicação de algoritmos de detecção de bordas, pois elimina os ruídos ao mesmo

tempo em que preserva as bordas, tornando assim a operação de detecção mais

eficiente.

Page 41: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

27

3.11. Momentos geométricos de uma imagem

Segundo Gonzales (2000) o momento de ordem p+q de uma função

bidimensional f(x,y) é dado pela equação abaixo:

IJK = L L JM*M K , N N M*M (equação 18)

Onde p=0,1,2 …, e q=0,1,2...

No caso de uma imagem digital f(x,y) a equação 18 torna-se:

IJK = ∑ ∑ J KOP; , OQ; (equação 19)

Onde nx e ny correspondem a largura e altura da imagem, respectivamente.

Neste trabalho o uso dos momentos geométricos são de extrema importância,

pois permitem que em uma dada imagem binária, contendo somente um objeto em

destaque, seja possível obter o seu centro de massa. Este cálculo é feito a partir dos

momentos de ordem 0 e 1 da imagem, e a localização do centro de massa é dado

pelas seguintes equações:

= S-TSTT (equação 20)

U = ST-STT (equação 21)

No caso de uma imagem binária, com um único objeto na cena, o momento m00

representa a área total do objeto.

Page 42: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

28

3.12. Mesa móvel

A mesa móvel a ser desenvolvida neste trabalho consiste em uma mesa com a

capacidade de se deslocar em duas direções, sendo atuada por motores de passo.

Consistirá basicamente em um sistema de posicionamento que deverá descrever

aproximadamente a mesma trajetória do objeto detectado pelo sistema de visão

computacional.

As referências para este tipo de mecanismo são vastas, variando em tamanho,

robustez, precisão, capacidade de carga, sistema de transmissão, entre outras

características.

Figura 23. Mesa X-Y industrial para posicionamento [Fonte: Yigone(2014)]

Na figura 23 é mostrada uma mesa de posicionamento do fabricante YIGONE.

Segundo o fabricante esta mesa foi fabricada em alumínio, utilizando barramentos de

aço temperado e retificado. Os eixos são atuados por motores de passo e a

transmissão de movimentos é feita através de fusos de esferas, o que garante

precisão e suavidade nos movimentos.

Page 43: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

29

O sistema acima apesar de robusto e preciso, possui custo elevado e exige

grande precisão dimensional na confecção dos componentes e na etapa de

montagem.

Na figura 24 é mostrado o detalhe de um sistema de posicionamento X-Y mais

simples. Segundo o fabricante Newmark(2014) os eixos são atuados por motores de

passo e os barramentos são feitos de aço inoxidável trefilado. O fabricante não informa

o material do mancal deslizante, porém as possibilidades são o bronze ou o nylon,

entre outros, que garantem um baixo coeficiente de atrito. A transmissão de

movimentos é feita por meio de polias e correias sincronizadoras, que oferecem

também boa precisão aos movimentos.

Figura 24. Sistema de posicionamento X-Y em detalhe. [Fonte:

Newmark(2014) ]

As vantagens do sistema acima são a modularidade e o baixo custo, uma vez

que componentes como os barramentos de aço trefilado, polias e correias

sincronizadoras podem ser adquiridos e encontrados com maior facilidade no

mercado.

Page 44: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

30

3.13. Software de Visão Computacional

3.13.1. Linguagem programação e ambiente de desenvolvimento

Neste trabalho a linguagem de programação utilizada no software de visão

computacional é o C++. O C++ é uma linguagem que desenvolvida por Bjarne

Stroustrup dos Bell Labs, durante a década de 80. É uma linguagem de alto nível,

desenvolvida a partir da linguagem C com o objetivo de incorporar recursos de

programação orientada a objetos.

O ambiente de desenvolvimento integrado utilizado é o Eclipse CDT. É um

ambiente inicialmente desenvolvido para trabalhar com a linguagem Java, mas que

suporta diversas linguagens, dentre elas o C++. Este ambiente segue o modelo de

software livre, podendo ser utilizado de forma gratuita por seus usuários.

3.13.2. Biblioteca OpenCV

O software de visão computacional desenvolvido em linguagem C++ fará uso

dos algoritmos disponíveis na biblioteca OpenCV. A OpenCV (Open Source Computer

Vision) é uma biblioteca de visão computacional desenvolvida pela Intel no ano 2000.

Ela é totalmente aberta ao usuário e segue o modelo de software livre. Foi

desenvolvida em C/C++ e possui módulos de processamento de imagens e vídeo, I/O,

estrutura de dados, álgebra linear, interface gráfica do usuário, possuindo além disso

mais de 350 algoritmos de visão computacional como filtros, calibração de câmera,

reconhecimento de objetos, etc. Possui foco em aplicações de tempo real. (OPENCV,

2014)

3.14. Microcontroladores

Os microcontroladores são dispositivos eletrônicos programáveis, fabricados

na forma de CI’s, que possuem uma organização semelhante a de um computador,

integrando em um mesmo chip, uma CPU (Central Processing Unit), sistema de clock,

memórias de dados e programa, e periféricos tais como, portas de entrada e saída,

temporizadores, conversores A/D entre outros. Adicionalmente consomem pouca

energia, geralmente na faixa de alguns mW. Estes dispositivos têm atualmente uma

vasta gama de aplicações, podendo ser encontrados em diversos equipamentos

Page 45: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

31

eletrônicos como celulares, tablet’s, etc., e tendo uso em áreas como robótica,

instrumentação e eletrônica em geral.

Figura 25. Diagrama simplificado de um microcontrolador. [Fonte: Adaptado

de Miyadaira (2009)]

Conforme Miyadaira(2009) as duas principais arquiteturas de

microcontroladores são a Harvard e a Von-Neumann. Na arquitetura Harvard os

barramentos de acesso a memória de dados e memória de programa são separados,

o que resulta em um aumento significativo no fluxo de dados. Já na arquitetura Von-

Neumann o barramento é compartilhado, o que limita porém a velocidade da troca de

dados.

CPU (Central Processing Unit)

A função da CPU é executar as instruções de um programa, em uma sequência

especificada, fazendo a leitura das unidades de entrada, lendo e escrevendo na

memória de dados, e realizando a escrita nas unidades de saída. A CPU é composta

basicamente de três unidades: a unidade lógica aritmética (ULA), unidade de controle

e os registradores.

A função ULA é realizar operações lógicas e aritméticas sobre os dados

oriundos das unidades de entrada ou de uma memória. Os resultados dessas

operações podem ser armazenados na memória de dados RAM ou enviados para

uma unidade de saída.

Page 46: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

32

A unidade de controle é responsável por coordenar a ULA e as demais

unidades conectadas à CPU. Basicamente esta unidade busca, decodifica e executa

as instruções do programa, enviando os sinais e resultados para as unidades

pertinentes.

Já os registradores são memórias rápidas e de baixa capacidade, que tem a

função de armazenar, de forma temporária, os dados importantes durante o

processamento.

A comunicação entre as diversas unidades de um microcontrolador é feita por

meio de um barramento de dados, sendo que a largura deste barramento em bits

define a quantidade de bits com que a CPU trabalha.

Sistema de clock

O sistema de clock fornece periodicamente à CPU, os pulsos necessários para

realizar de forma síncrona todas as suas operações, permitindo o sequenciamento

das instruções. Corresponde portanto a velocidade do microcontrolador. Este sinal de

clock é provindo geralmente de um cristal piezoelétrico e sua frequência na maioria

dos casos se situa na faixa de alguns Mhz.

Memórias

Os principais tipos de memória que podem ser encontrados em um

microcontrolador são as memórias RAM, ROM, EPROM, Flash e EEPROM. Tal como

em um sistema computacional a memória RAM (Random Access Memory) é a

memória de dados utilizada para armazenar as variáveis e registradores usados pelo

programa durante a execução das instruções. As memórias ROM (Read Only

Memory), EPROM (Erasable ROM) e Flash constituem a memória de programa, onde

o mesmo é armazenado. Atualmente a memória do tipo Flash é mais utilizada, uma

vez que pode ser programada diversas vezes, enquanto as outras não tem essa

capacidade. E por último temos a memória EEPROM (Eletrically Erasable ROM) que

pode ser utilizada pelo usuário para guardar dados, sendo uma memória do tipo não

volátil, que mantém os seus dados mesmo sem alimentação.

Page 47: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

33

Periféricos

Os periféricos disponíveis nos microcontroladores são diversos e variam

conforme o modelo e o fabricante. Esses periféricos podem ser controladores de

comunicação, seja serial assíncrona (USART), USB, paralela, etc., conversores A/D,

comparadores, controladores de LCD, PWM. Dentre os principais periféricos

destacam-se as portas de entrada e saída e os timers.

As portas de entrada e saída são portas digitais com a capacidade de fornecer

ou drenar correntes na faixa de alguns mA, produzindo assim os sinais necessários

para acionamento de circuitos externos ou recebendo sinais que serão utilizados pela

CPU do microcontrolador. Já os timers são contadores internos, independentes, que

fornecem uma referência para processos que envolvam a contagem de tempo.

Interrupções

As interrupções são pausas no programa principal provocadas por algum

evento interno ou externo que são tratadas por uma rotina que esteja fora do programa

principal. As interrupções podem ser programadas para acontecer devido a diversos

tipos de eventos como a borda de descida de um sinal externo, um estouro de

contagem de um timer interno, ou mesmo uma interrupção provocada pelo início de

uma comunicação com outro dispositivo. As rotinas de interrupção são armazenadas

em uma área de memória separada do programa principal.

3.14.1. Microcontrolador PIC18F4550

O microcontrolador PIC18F4550 faz parte de uma família de

microcontroladores fabricados pela Microchip Technology Inc., baseados na

arquitetura Harvard. O nome PIC provêm de “Programmable Interface Controller”.

Page 48: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

34

Figura 26. Pinagem do microcontrolador 18F4550. [Fonte: Inginieria5 ]

Estes dispositivos processam dados de 8 bits, possuem 32Kbytes de memória

de programa, no formato ROM, EPROM ou FLASH, 2048 bytes de memória de dados

RAM e mais 256 bytes de memória EEPROM. Devido a arquitetura Harvard possuem

alta velocidade de processamento, operando em frequências de até 48MHz. Possuem

um conjunto de 35 instruções em assembly.

Figura 27. Pinagem do microcontrolador 18F4550. [Fonte: Adaptado de

Microchip (2006)]

5 Disponível em: < http://cosasdeingenieria.com/esp/index/item/189/55/microcontrolador-pic18f4550 >, acesso em: 14 de fevereiro de 2015.

Page 49: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

35

O PIC18F4550 possui 40 pinos, onde 35 destes podem ser configurados como

entradas e saídas digitais. Pode ser alimentado com tensões de 4V à 5.5 V. Possui

diversos periféricos, tais como, treze conversores A/D de 10bits de resolução, um

timer de 8 bits e mais três timers de 16 bits (TIMER2, TIMER0, TIMER1 e TIMER3),

dois comparadores analógicos, módulos de comunicação, serial assíncrona (USART),

SPI, I²C e USB 2.0.

Características Elétricas

Conforme descrito por Miyadaira(2009) as características elétricas do

PIC18F4550 são:

Faixa de temperatura de trabalho.................................-40°C a +85°C

Tensão de funcionamento....................................................4V a 5.5V

Potência máxima de dissipação.....................................................1 W

Corrente máxima de saída do pino VSS.....................................300mA

Corrente máxima de entrado do pino VDD.................................250mA

Corrente máxima fornecida por qualquer pino I/O.......................25mA

Corrente máxima de entrada em todas as portas I/O................200mA

Corrente máxima fornecida por todas as portas I/O..................200mA

Ambiente de desenvolvimento integrado,compilador e gravador

O Ambiente de Desenvolvimento Integrado da família de microcontroladores

PIC é o MPLAB IDE. Com este software é possível editar, debugar, simular, compilar

e gravar os programas no microcontrolador.

O compilador desenvolvido para a família PIC 18F é o MPLAB C18. Este é um

compilador de linguagem C, que trabalha integrado ao ambiente de desenvolvimento

integrado, possuindo uma vasta biblioteca. Este compilador permite também incluir

sequências de código assembly no código em C.

O gravador utilizado é o PICKit3, que efetua a gravação dos arquivos gerados

no microcontrolador após a compilação no MPLAB. Este gravador é do tipo ICSP (In

Page 50: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

36

Circuit Serial Programming) onde é possível realizar toda a gravação sem a

necessidade de retirar o chip do circuito final.

3.15. Comunicação entre Microcontrolador e Computador

Em diversas aplicações utilizando microcontroladores, surge a necessidade de

haver uma troca de dados deste dispositivo com um computador pessoal, seja para

receber e transmitir resultados de operações ou mesmo para interagir com uma

interface gráfica hospedada no computador. Com esta finalidade os

microcontroladores da família PIC 18F dispõem de alguns protocolos de comunicação

serial, seja para troca de dados entre periféricos, como o SPI e o I²C, ou então para a

comunicação direta entre o dispositivo e o computador, tais como a USART,

implementado o RS-232, e a USB.

3.15.1. USART

Conforme Miyadaira (2009) a USART (Universal Synchronous Asynchronous

Receiver Transmitter) é um periférico presente no PIC que permite a realização da

comunicação entre o chip e uma porta serial. Pode ser configurado para trabalhar de

modo assíncrono, em full-duplex, ou no modo síncrono, half-duplex. Full-duplex é o

modo de comunicação onde os dispositivos envolvidos na comunicação podem

receber e transmitir dados simultaneamente, já no modo half-duplex somente um

dispositivo pode transmitir ou receber por vez.

A USART recebe os dados da CPU do PIC de forma paralela e os transmite de

forma serial, e do mesmo modo recebe dados de forma serial e os repassa à CPU de

forma paralela.

Através deste hardware de comunicação é possível implementar diversos

protocolos seriais dentre eles destaca-se o RS-232.

Page 51: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

37

3.15.2. RS-232

O RS-232 é um protocolo de comunicação serial utilizado para a troca de dados

entre dispositivos denominados DTE (Data Terminal Equipment), um terminal de

dados, como um computador, e entre um DCE (Data Communication Equipment), um

comunicador de dados, tal como um modem, a título de exemplo. Este protocolo foi

desenvolvido pela EIA (Electronic Industries Association) por volta de 1962, e é

também conhecido pelos nomes de EIA 232 ou TIA 232.

A troca de dados é feita através de pacotes de dados, denominados frames,

com tamanho de 10 ou 11 bits, sendo 1 bit de início (Start Bit), 1 à 2 bits de parada

(Stop Bits),1 bit de paridade e 8 bits da mensagem codificada conforme tabela ASCII.

As taxas de transmissão mais comuns são de 300bps, 600bps, 1200bps, 2400bps,

4800bps, 9600bps, 19200bps. (MIYADARA, 2009)

Quanto aos sinais elétricos binários, o estado lógico 0, também denominado

espaço, é representado por tensões na faixa de +3V a +25V, enquanto o estado lógico

1, é denominado marca, e é representado por tensões na faixa de -3V a -25V. A região

de -3V a +3V não representa nenhum estado lógico. A figura 28 exibe os sinais

elétricos para um frame de 10 bits, sem paridade, onde acima do gráfico estão

representados os estados lógicos correspondentes.

Figura 28. Sinal elétrico padrão RS-232. [Fonte: Adaptado de Ermicro6]

6 Disponível em: < http://www.ermicro.com/blog/?p=325#more-325 >, acesso em: 14 de fevereiro de 2015.

Page 52: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

38

Os conectores geralmente utilizados nas portas seriais são o DB9 e o DB25,

com 9 e 25 pinos respectivamente. Na figura 29 é mostrado o conector DB9 macho,

utilizado geralmente nas extremidades dos cabos de comunicação, enquanto o

conector fêmea é embutido nos dispositivos que se comunicam.

Figura 29. Conector DB9 fêmea. [Fonte: Adaptado de Usconverters7]

Nos computadores com sistema operacional Windows as portas de

comunicação seriais são referidas como portas COM, seguindo uma numeração

sequencial: COM1, COM2...e assim sucessivamente. Quando há a necessidade de

se utilizar as funcionalidades de uma porta COM mesmo sem a existência de uma

porta física instalada, é possível através de um software dedicado, criar portas seriais

virtuais.

3.15.3. USB

O USB (Universal Serial Bus) é protocolo de comunicação serial desenvolvido

nos anos 90 por um conjunto de grandes empresas do ramo de tecnologia como

Compaq, Hewlett-Packard, Intel, Lucent, Microsoft, NEC e Philips. Foi concebido sob

7 Disponível em: < http://www.usconverters.com/index.php?main_page=page&id=61 >, acesso em: 14 de fevereiro de 2015.

Page 53: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

39

o conceito da tecnologia plug-and-play onde o usuário pode conectar um dispositivo

USB a um computador, ou outro equipamento de capacidade semelhante, e todo o

processo de inicialização e conexão é realizado automaticamente.

Ao longo dos anos o protocolo passou por diversas atualizações, partindo do

USB 1.0, com taxas de transmissão de 1.5 Mbit/s a 12 Mbit/s, em seguida o USB 2.0,

com taxas que alcançam até 480 Mbit/s, e mais recentemente foi concebido o USB

3.0 com altas taxas de transmissão, chegando a 5 Gbit/s.

Este protocolo opera no modo half-duplex e a codificação dos estados lógicos

é do tipo NRZI.

Na topologia de uma rede USB são considerados quatro elementos: o

host, o root hub, o hub e os periféricos. Segundo Messias (2007) host é o dispositivo

responsável por inicializar e gerenciar processos como detecção e remoção de

periféricos, controle do fluxo de dados, fornecimento de alimentação para os

periféricos e monitoramento dos sinais no barramento USB. Já os hubs são os

dispositivos que fornecem portas físicas adicionais e alimentação para os periféricos

conectados, permitindo ampliar a rede USB. O root hub é a porta física principal

presente no host.

Meio físico e conectores

O meio físico é constituído de 4 linhas, sendo duas para alimentação, o Vbus

com +5V e o GND (terra), e um par trançado de fios com as linhas de dados D+ e D-.

As cores padronizadas dos fios são: preto para o GND, vermelho para o Vbus, verde

e branco para o D- e D+ respectivamente.

Page 54: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

40

Figura 30: Conector USB, designação dos pinos e cores dos fios

correspondentes. [Fonte: Adaptado de SuperUser8]

Existem diversos conectores padronizados, entre eles tem-se o USB tipo A, tipo

B, Mini-A, Mini-B, Micro-AB, Micro-B. Os conectores do tipo A são utilizados nas portas

dos host ou hubs, já o tipo B é utilizado nas portas dos periféricos.

Figura 31. Conector DB9 fêmea. [Fonte: Adaptado de Greenlightgo9]

8 Disponível em: < http://superuser.com/questions/448722/can-i-safely-connect-the-power-

only-end-of-a-usb-y-cable-to-an-other-power-source >, acesso em: 14 de fevereiro de 2015.

9 Disponível em: < http://greenlightgo.org/education/courses/engr101fall2014/

2014/10/10/human-factors-mw-1430-landon-duke >, acesso em: 14 de fevereiro de 2015.

Page 55: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

41

Codificação NRZI

Toda a troca de dados em uma comunicação USB é feita pelo código NRZI. O

NRZI (Non-Return to Zero Inverted) é um tipo de codificação que designa o estado

lógico 1 como uma transição qualquer de subida ou descida do sinal, enquanto o

estado lógico 0 é designado como a ausência de transições. A figura 32, ilustra esta

codificação:

Figura 32. Sinal codificado em NRZI. [Fonte: Adaptado de Hertfordshire10]

Endpoint, Pipe e tipos de transferência de dados

Um endpoint é uma região de memória no periférico que armazena todos os

dados relacionados ao protocolo USB. Estes dados podem ser: número de série,

fabricante, classe, velocidade, tipo de transferência, nome do produto entre outras

características. Já o pipe é um canal de dados virtual, que faz a associação entre um

endpoint no dispositivo e um software gerenciador no host.

Quanto ao tipo de transferências de dados, são definidas quatro formas:

Control, Bulk, Interrupt e Isochronous. O tipo Control é utilizado para realizar a

configuração de um dispositivo que é conectado pela primeira vez. O tipo Bulk é

utilizado quando é necessária a transferência de grandes quantidades de dados,

garantindo a integridade dos dados por meio da verificação de erros. O tipo Interrupt

é utilizado por dispositivos que realizam transferências de dados em pequenas

10 Disponível em: < http://homepages.herts.ac.uk/~comqrgd/docs/network-notes/network-

notes-node4.html >, acesso em: 14 de fevereiro de 2015.

Page 56: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

42

quantidades e com pouca frequência, tais como, mouses e teclados. E o tipo

Isochronous é utilizado para a transferência de grandes quantidades de dados, de

forma contínua, com velocidade mais alta, e sem a necessidade da verificação de

erros. Esta última forma é utilizada geralmente para transmissões dados do tipo áudio

ou vídeo.

Pacotes de dados do protocolo USB

Conforme descrito por Messias(2007) As transferências de dados no protocolo

USB são sempre iniciadas e gerenciadas pelo Host, e todo o processo é feito através

de pacotes, sendo o primeiro destes o Token que descreve o que será enviado no

pacote seguinte, e se a mensagem deverá ser lida ou escrita, o pacote Data que

contém os dados úteis e por fim o pacote Handshake que sinaliza se houve ou não

sucesso na operação.

Descritores

É um grupo de dados acerca de um dispositivo USB que dão ao Host diversas

informações sobre o dispositivo como número de endpoints, tipo de transferência,

número de série, fabricante, tipo de dispositivo, etc. No processo de enumeração o

host realiza a solicitação dos descritores, de modo a identificar o dispositivo e suas

características, e então estabelecer a comunicação entre ambos.

Classes

No protocolo USB os dispositivos que possuem características em comum são

agrupados em classes. Isso permite em muitos casos a reutilização de software, de

modo que os drivers utilizados para um dispositivo possam ser utilizados por outro

pertencente a mesma classe com poucas modificações.

Os tipos de classes mais comuns são: Audio Device Class (ADC), Human

Interface Device (HID), Mass storage Class (MSC), Custom Class, Communication

Device Class(CDC).

A classe ADC é usada para troca de dados de áudio. A HID é geralmente

utilizada em mouses e teclado para trocas de dados simples e não frequentes. A MSC

é utilizada para dispositivos como cartões de memória e pen-drives. Já a Custom

Class é utilizada para implementar novos dispositivos USB.

Page 57: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

43

A classe CDC, contém as especificações para dispositivos de comunicação.

Estes dispositivos podem ser telefones, modems, etc. Esta classe prevê também a

emulação de portas seriais virtuais, que tem grande importância quando há a

necessidade de se conectar equipamentos que se comunicam através do protocolo

RS-232. Neste caso o driver USB CDC do dispositivo poderá emular uma porta serial

no computador que contém o host, e a aplicação que se comunica com o dispositivo

poderá se comunicar através do protocolo RS-232, diminuindo a complexidade do

software.

Enumeração

Enumeração corresponde ao processo de conexão, solicitação e leitura de

descritores e atribuição de um endereço para o dispositivo. No final do processo o

dispositivo se encontrará configurado e pronto para se comunicar. A enumeração lida

também com o processo de desconexão de um dispositivo.

3.15.4. Microchip Libraries Application

A Microchip Technology Inc. dispõe de uma biblioteca de aplicações que

contém códigos-fonte e arquivos de cabeçalho para uma grande diversidade de

projetos, abrangendo toda a família PIC. Estes projetos lidam com interfaces gráficas,

escrita e leitura de arquivos, criptografia, protocolo USB, protocolo TCP/IP, entre

outros. Neste pacote ainda vem incluso diversos drivers e aplicativos que funcionam

em conjunto com cada projeto.

A biblioteca e os projetos de comunicação USB disponíveis, são

particularmente importantes para este trabalho, uma vez que fornecem as classes,

funções e drivers necessários para implementar dispositivos USB da classe CDC,

permitindo emular portas COM virtuais no sistema operacional Windows.

3.16. Motores de Passo

Os motores de passo são máquinas elétricas cuja rotação é feita em variações

angulares discretas, através da aplicação de pulsos elétricos sequenciais em cada

Page 58: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

44

fase de seu estator. A velocidade de rotação do rotor é diretamente proporcional a

frequência dos pulsos aplicados no estator.

Figura 33. Motores de passo. [Fonte: Manutenção & Suprimentos11]

Estes motores são utilizados principalmente em aplicações que requeiram

posicionamento preciso e sincronismo, a partir de um controle em malha aberta. São

amplamente empregados nas áreas de robótica e automação industrial, e são

encontrados em equipamentos como impressoras, scanners, câmeras, robôs e

sistemas de posicionamento. Quanto a resolução angular, é possível encontrar

motores com passos de 0.9°, 1.8°, 3.6°, entre outros, chegando até valores de 90° por

passo.

Princípio de funcionamento

Os motores de passo são constituídos basicamente de um estator com

enrolamentos de excitação e um rotor que pode ser composto de saliências

espaçadas uniformemente ou imãs permanentes. O conjugado é produzido pela

tendência do rotor em se alinhar com o campo produzido pela fase excitada. Um

exemplo simplificado de funcionamento é mostrado na figura 34, abaixo:

11 Disponível em: < http://www.manutencaoesuprimentos.com.br/conteudo/5899-motores-de-passo >, acesso em: 14 de fevereiro de 2015.

Page 59: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

45

Figura 34: Funcionamento simplificado de um motor de passo. [Fonte:

Adaptado de Savage12]

Na figura 34 é possível ver um diagrama conceitual de um motor de passo, cujo

rotor é constituído de um imã permanente que se alinha com o campo magnético

produzido por uma fase do estator.

Formas construtivas

Segundo Fitzgerald (2003) existe uma grande variedade de formas construtivas

de motores de passo, sendo que as principais são: os motores de relutância variável,

de imã permanente e híbridos.

Nos motores de passo de relutância variável o estator possui pólos magnéticos

salientes enquanto o rotor é constituído de lâminas de aço-silício empilhadas. O rotor

possui também diversas saliências longitudinais que atuam como caminhos de baixa

relutância para o fluxo magnético. Sendo assim quando um enrolamento é excitado,

o rotor tende a se alinhar em uma direção que minimize a relutância entre dois pólos

opostos do estator. Na figura 35 é mostrado o esquema de um motor de passo de

relutância variável, onde a fase B é excitada, produzindo um campo magnético entre

12 Disponível em: < http://www.savagehomeautomation.com/projects/raspberry-pi-stepper-motor-control-breakout-board.html >, acesso em: 14 de fevereiro de 2015.

Page 60: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

46

os pólos B e B’, o que resulta no alinhamento das saliências 3 e 6 do rotor, que formam

o caminho magnético de baixa relutância.

Figura 35. Motor de passo de relutância variável. [Fonte: Adaptado de EEP13]

Já nos motores de imã permanente o rotor é constituído de imãs permanentes,

sendo que quando uma das fases do estator é acionada os imãs tendem a alinhar seu

campo magnético com o campo produzido. São motores de baixa resolução, podendo

ser encontrados com passos de 7,5° a 15°.

Figura 36. Motor de passo de relutância variável. [Fonte: Adaptado de Electrical

Engineering Assignment14]

13 Disponível em:< http://electrical-engineering-portal.com/few-words-about-stepper-motor-advantages-disadvantages-and-classification >, acesso em: 15 de fevereiro de 2015.

14 Disponível em:< http://www.electrical-engineering-assignment.com/construction-and-

working-2 >, acesso em: 15 de fevereiro de 2015.

Page 61: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

47

O terceiro tipo, o motor de passo híbrido, combina as vantagens dos motores

de relutância variável e imã permanente. Seu rotor é constituído de dois corpos

cilíndricos, ferromagnéticos, com saliências que permitem a formação de um caminho

magnético bem definido. No interior do rotor é colocado um imã permanente de tal

modo que cada corpo cilíndrico tenha uma polaridade magnética diferente. Além disso

as saliências de um corpo se encontram deslocadas em relação as saliências do outro

corpo, sendo que esse ângulo de deslocamento corresponde ao valor de dois passos.

Já no estator os pólos salientes possuem também ressaltos, que ajudam na condução

do fluxo magnético para cada saliência do rotor. A figura 37 ilustra a estrutura descrita:

Figura 37. Motor de passo Híbrido. [Fonte: Adaptado de McComb15]

Tendo essas características em vista, quando se excita uma fase do estator,

cada saliência do rotor, que formam pequenos pólos, tenderão a se alinhar com os

ressaltos do estator, produzindo então o conjugado.

15 Disponível em:< http://www.microchip.com/stellent/groups/SiteComm_sg/documents/ DeviceDoc/en543047.pdf >, acesso em: 15 de fevereiro de 2015.

Page 62: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

48

Figura 38. Motor de passo Híbrido. [Fonte: Adaptado de PCBheaven16]

Ligações elétricas do estator

Os motores de passo, quanto a ligação do estator, podem ser bipolares ou

unipolares. Conforme Os motores bipolares possuem somente um enrolamento para

cada fase, sendo necessária a inversão da corrente para inverter o sentido de rotação

do motor. Já os motores unipolares possuem dois enrolamentos por fase, um para

cada sentido de rotação. Neste último caso há sempre um fio em comum aos dois

enrolamentos de uma fase. (BRITES et al., 2008)

A ligação bipolar permite obter torques maiores, uma vez que a ligação unipolar

divide o enrolamento de uma fase em duas partes, através do fio comum, o que reduz

a indutância pela metade. Por outro lado a ligação unipolar permite que o acionamento

seja feito por um hardware mais simples.

16 Disponível em:< http://www.pcbheaven.com/wikipages/How_Stepper_Motors_Work >, acesso em: 15 de fevereiro de 2015.

Page 63: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

49

Figura 39. Tipos de ligações. À esquerda um motor bipolar de 2 fases e 4 fios.

À direita um motor unipolar de 2 fases e 6 fios. [Fonte: Adaptado de McComb17]

Sequência de acionamento de fases

Para que o rotor dos motores de passo se desloque de modo uniforme é

necessário seguir uma sequência de acionamento. Tomando como base a

nomenclatura da figura 39, os sinais aplicados as fases do estator devem ter a

seguinte ordem, mostrada nas figuras 40 e 41 abaixo:

Figura 40. Sequência de acionamento, com uma fase por vez. [Fonte:

Adaptado de Neoyama (2014)]

17 Disponível em:< http://www.likomotor.com/en/_default_v72.aspx >, acesso em: 15 de fevereiro de 2015.

Page 64: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

50

Figura 41. Sequência de acionamento, com duas fases simultaneamente.

[Fonte: Adaptado de Neoyama (2014)]

O sinal “+” na tabela representa uma tensão positiva aplicada no terminal

correspondente.

As figuras 40 e 41 mostram dois modos de acionamentos, válidos tanto para

motores bipolares, como para unipolares. No primeiro, somente uma fase é acionada

por vez, na sequência especificada, e no segundo temos duas fases sendo acionadas

simultaneamente. Ambos produzirão a rotação do motor, porém no segundo caso o

torque produzido é maior, o que acarreta também um consumo maior de corrente.

3.17. Método de interpolação de movimentos utilizando motores de

passo

Um dos problemas relativos a mesa móvel diz respeito não só ao projeto e

construção, como também a forma como a mesa deve se movimentar e como deve

ser feito o controle das trajetórias utilizando motores de passo. Tendo a vista a solução

deste problema, uma das possíveis referências se encontram na indústria e as

tecnologias utilizadas para sistemas de posicionamento. Uma área que fornece

soluções para este tipo de problema é denominada Motion Control. As tecnologias e

métodos utilizados por esta área, são amplamente utilizados na indústria e constituem

uma valiosa referência para o desenvolvimento de sistemas de posicionamento, tal

como a mesa móvel desenvolvida neste trabalho.

Page 65: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

51

3.17.1. Motion Control

O controle de movimentos, ou Motion Control como é mais conhecido na

indústria, é uma das áreas da automação industrial que trata do controle de posição,

velocidade e aceleração de mecanismos acionados por atuadores hidráulicos,

pneumáticos ou elétricos. Esta área porém lida com movimentos de média

complexidade, aplicada em mecanismos e planejamento de trajetórias mais simples

do que aqueles encontrados nas área de robótica industrial ou mesmo em máquinas

CNC. (SCHNEIDER, 2014)

A figura 42 abaixo, expressa graficamente o nível de complexidade e os tipos

de mecanismos que são acionados:

Figura 42. Área de aplicação do motion control industrial. [Fonte: SCHNEIDER,

2014]

Page 66: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

52

Arquitetura

A arquitetura típica de um sistema de motion control é mostrada abaixo, na

figura 43:

Figura 43. Arquitetura típica de um sistema de motion control industrial. [Fonte:

Adaptado de EETimes18]

Conforme mostrado a arquitetura é composta basicamente de um controlador,

os amplificadores, atuadores, e sensores.

O controlador tem a função de processar as ordens recebidas de um

controlador mestre, processar os sinais de realimentação, realizar o cálculo das

trajetórias e gerar os sinais de controle para a etapa seguinte.

Os amplificadores ou drivers, constituem a etapa de potência do sistema, sendo

responsáveis por acionar diretamente os atuadores fornecendo a potência que

necessitam.

Os atuadores são os responsáveis por movimentar o mecanismo que se

desejar acionar. Podem ser atuadores hidráulicos, pneumáticos ou elétricos, contudo,

a maioria dos sistemas de motion control são dedicados a motores elétricos.

18 Disponível em:< http://www.eetimes.com/document.asp?doc_id=1272319 >, acesso em: 15 de fevereiro de 2015.

Page 67: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

53

Tipos de movimento

Na área de motion control os tipos de movimentos mais comuns são o ponto-

a-ponto, interpolação linear e interpolação circular.

O movimento ponto-a-ponto, como o próprio nome diz, é executado ponto por

ponto, em passos. Segundo Ardayfio (1987) Há três formas usuais de se realizar este

tipo de movimento. No primeiro modo somente um eixo é movimentado por vez, até

que se atinja o ponto desejado. Na segundo modo cada eixo é movimento para sua

coordenada final sem haver coordenação, de modo que, se algum dos eixos atingir

sua coordenada primeiro, ele ficará imobilizado até os outros alcançarem sua posição

final. E no terceiro modo, os eixos são coordenados de forma que atinjam

simultaneamente a posição final

Já a interpolação linear é um método mais sofisticado onde os movimentos de

cada eixo são coordenados de modo que a trajetória seja realmente linear com

velocidade controlada.

E por fim na interpolação circular, são percorridas trajetórias em arco ou em um

círculo. A partir das posições inicial e final, e da posição do centro de curvatura, é

gerada uma trajetória e o eixos são movimentadas de forma coordenada, tal que se

atinja simultaneamente o ponto final.

3.17.2. Algoritmo de Interpolação Linear

A mesa móvel constituí um sistema de posicionamento de dois eixos lineares,

sendo acionados por dois motores de passo. O que resulta que todos os movimentos

são realizados de forma discreta, em passos. Neste sistema será utilizado somente

um microcontrolador para dois eixos, e dada a natureza sequencial deste controlador,

não é possível o acionamento simultâneo dos eixos. Neste contexto o tipo de

movimento que pode ser realizado pela mesa é ponto-a-ponto, conforme o primeiro

tipo descrito no item 3.1. Dentre as diversas possibilidades de se realizar este tipo de

movimento, tem-se o algoritmo de Bresenham, utilizado com sucesso por

Chiang(1994) na implementação de um sistema de controle de movimentos utilizando

motores de passo. Com esse algoritmo é possível implementar uma interpolação

linear com boa precisão utilizando uma série de pequenos movimentos ponto-a-ponto.

Page 68: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

54

Algoritmo de Bresenham

O algoritmo de Bresenham é um algoritmo da área de computação gráfica, que

tem a função de desenhar retas da forma aproximada em matrizes de pixels. Foi criado

por Jack Elton Bresenham em 1965, cujo objetivo, segundo o próprio autor em

Bresenham (1965) era obter um algoritmo para o controle de posição de plotadoras

digitais.

Basicamente este algoritmo verifica qual pixel se encontra mais próximo da reta

a ser desenhada, assinalando esta posição.

Figura 44. Deteminação dos pontos de origem de cada pixel no algoritmo de

Bresenham. [Fonte: ZINGL,2012]

Sendo assim em cada passo é feita a comparação da distância da reta com o

ponto Pm. Se a reta ficar acima da metade da altura do pixel então o pixel acima da

reta é assinalado, caso contrário o pixel onde se encontra a reta é assinalado. Na

figura 44 como a reta ficou abaixo de Pm então o pixel com origem em Px foi

assinalado.

Page 69: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

55

Neste algoritmo o eixo que possuir o maior número de passos é tomado como

referência, sendo incrementado a cada passo. Já o eixo secundário para ser

incrementado ou não, depende da comparação com o ponto médio, conforme

explanação do parágrafo anterior.

Interpolação linear utilizando o Algoritmo de Bresenham

Quando utilizado em sistemas de movimentação o algoritmo de Bresenham

pode fornecer uma trajetória aproximadamente linear, utilizando pequenos

movimentos ponto-a-ponto. Tomando como base a figura 44 e os pontos gerados pelo

algoritmo, é possível obter um perfil de movimentação conforme mostrado abaixo na

figura 45:

Figura 45. Interpolação linear utilizando o algoritmo de Bresenham. [Fonte:

Adaptado de ZINGL,2012]

No caso de um sistema de posicionamento utilizando motores de passo como

atuadores, pode-se verificar que quanto maior a resolução angular do motor, mais a

trajetória se aproximará de uma interpolação linear ideal.

Page 70: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

56

4. Resultados

4.1. Mesa Móvel

Neste tópico são explanadas as etapas de projeto e construção da mesa móvel,

bem como as dificuldades encontradas na execução.

4.1.1. Projeto

O projeto foi inspirado em mesas X-Y de uso corrente na indústria, conforme

descrito no tópico 3.13 deste trabalho. Todo o desenvolvimento foi feito com o objetivo

de produzir um mecanismo estável, com precisão razoável, e que pudesse ser

facilmente confeccionado e montado nas dependências da oficina mecânica da

UFABC. Todos as peças possuem formatos simples e com tolerâncias dimensionais

de fácil obtenção. O material utilizado em sua maioria é o alumínio, que possui boa

usinabilidade, leveza e um custo menor se comparado ao aço.

O sistema é composto de uma base principal que dá suporte a mais duas

bases, sendo a base final a parte que se desloca em duas direções. Sobre a base

principal há dois barramentos redondos de aço trefilado, sobre os quais deslizam dois

mancais de nylon. O nylon garante um baixo coeficiente de atrito, combinado com uma

razoável rigidez que é característica deste material. Estes mancais servem também

de suporte a segunda base. Fixada a esta base há duas correias sincronizadoras, cuja

movimentação é feita através de um motor de passo com o eixo acoplado a duas

polias sincronizadoras. Sobre a segunda base há o mesmo conjunto descrito, com um

outro motor de passo realizando a movimentação.

Nas figuras 46, 47, 48 e 49 são mostradas algumas vistas do projeto da mesa

móvel desenvolvido no software CAD SolidWorks:

Page 71: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

57

Figura 46: Vista em perspectiva da Mesa Móvel. [Fonte: Autor]

Figura 47. Vista frontal da Mesa Móvel. [Fonte: Autor]

Page 72: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

58

Figura 48. Vista da lateral esquerda da Mesa Móvel. [Fonte: Autor]

Figura 49. Vista superior da Mesa Móvel. [Fonte: Autor]

Este conjunto foi projetado para possuir um curso máximo de 240 mm nas

direções x e y.

Page 73: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

59

Para evitar colisões no fim do curso de movimentação são acoplados aos

suportes das guias, sensores mecânicos do tipo microswitch, de tal modo que próximo

do curso máximo, os mancais de nylon entrem em contato com o sensor gerando um

sinal de parada do motor de passo.

Todo o projeto das peças e do conjunto é de autoria própria, e os desenhos

técnicos se encontram no Apêndice A deste trabalho.

4.1.2. Confecção, montagem e resultado final

Após a finalização do projeto, todos os desenhos técnicos foram entregues aos

responsáveis da oficina mecânica da UFABC, juntamente com as matérias-primas,

necessárias a usinagem.

Todo o processo de confecção se desenvolveu sem maiores problemas,

havendo uma pequena dificuldade na usinagem dos mancais de nylon. O nylon é um

material de plástico de estrutura rígida e que se funde a baixas temperaturas. Resulta

que no momento da usinagem a retirada de cavacos é irregular devido a deformação

causada pela temperatura, gerada na fricção com a ferramenta. Então no momento

da operação manual de alargamento do furo principal, houve a formação sulcos

longitudinais neste furo. Estas irregularidades foram corrigidas com repasses da

ferramenta de alargamento.

Por fim todas as peças foram confeccionadas corretamente, de acordo com as

dimensões e tolerâncias especificadas no projeto.

A montagem também ocorreu sem maiores problemas, uma vez que o projeto

foi feito visando também a facilidade de montagem. Todos os componentes foram

fixados através de parafusos, porcas e arruelas.

Conforme o previsto as bases montadas sobre os barramentos exibiram um

baixo coeficiente de atrito, podendo ser deslocadas manualmente quando os motores

não estão acoplados.

A dificuldade encontrada foi no mecanismo de acoplamento entre o motor e o

eixo que suporta as polias. Como o sistema em si não possui uma alta precisão

dimensional e de posição, houveram pequenos desvios entre o eixo do motor e o eixo

Page 74: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

60

de transmissão de movimento às polias. O acoplamento utilizado exibia também

folgas nos furos que amplificaram o desalinhamento dos eixos. Resultou que nos

testes, com o motor acoplado e acionado, todo o desalinhamento foi transmitido ao

eixo do motor que a cada volta ficava se deslocando de sua posição.

A solução encontrada foi a utilização de acoplamentos elásticos. Estes

acoplamentos são peças de alumínio que possuem o diâmetro de cada eixo a ser

acoplado e o seu corpo é cilíndrico, porém é fabricado com uma seção em forma

helicoidal que permite que este componente se comporte como uma mola. Na figura

50 é possível ver o acoplamento utilizado:

Figura 50. Acoplamento elástico utlizado. [Fonte: Autor]

Este formato permite que este componente compense tanto desalinhamentos

radiais como longitudinais. Sua aplicação no conjunto montado permitiu a

compensação dos desalinhamentos, tornando suave a transmissão de movimento do

motor para o eixo das polias.

Com relação aos atuadores, foram utilizados motores de passo híbridos, com

passos de 1.8°, do fornecedor Neoyama Ltda. O motor escolhido para movimentar a

base inferior, possui torque de 15 Kgf.cm, enquanto o outro motor possui torque de 10

Kgf.cm, uma vez que a carga do conjunto da base superior é menor.

A mesa móvel montada, incluindo os motores de passo é mostrada nas figuras

51 e 52 abaixo:

Page 75: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

61

Figura 51. Vista em perspectiva da mesa móvel montada. [Fonte: Autor]

Figura 52. Vista superior da mesa móvel montada. [Fonte: Autor]

Page 76: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

62

4.2. Circuitos Eletrônicos Controle e Potência

Neste tópico são explanadas as etapas de projeto dos circuitos eletrônicos e

montagem do protótipo, bem como as dificuldades encontradas durante os testes.

4.2.1. Projeto

O circuito eletrônico deste trabalho pode ser dividido basicamente em dois

módulos: módulo de controle e módulo de potência. O módulo de controle é

responsável por gerar os sinais de acionamento do motor de passo, na sequência

correta e também gerenciar a comunicação USB com o computador. Já o módulo de

potência, ou driver, amplifica os sinais de acionamento fornecendo a tensão e corrente

que os motores de passo necessitam.

Módulo de Controle

Este módulo é constituído de microcontrolador, regulador de tensão, oscilador

e conector USB.

O regulador de tensão é primordial para oferecer uma tensão de 5V para a

alimentação do microcontrolador e suas entradas e saídas. Já o oscilador é composto

de um cristal piezoelétrico associado a capacitores cerâmicos, cuja função é fornecer

o sinal de clock para o microcontrolador para a realização de todas as tarefas. O sinal

fornecido é de 20 Mhz neste projeto.

Para permitir que este módulo se comunique com o computador, é ligado à

saída USB do microcontrolador um conector USB fêmea do tipo B, semelhante ao

mostrado na figura 41.

Módulo de Potência

Este módulo é constituído de optoacopladores, transistores bipolares, diodos e

resistores de potência.

Com a finalidade de isolar eletricamente o módulo de interface do módulo de

potência, são empregados nas entradas do módulo de potência dezesseis

optoacopladores. Estes componentes realizam a interface entre a etapa de potência

e controle, eliminando boa parte das interferências que poderiam se propagar para o

Page 77: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

63

circuito de controle além de evitar possíveis surtos de corrente ou tensão nas saídas

do microcontrolador, que possivelmente levariam o elemento à queima.

Já os transistores, diodos e resistores de potência são empregados nas

denominada pontes H que alimentam as fases dos motores de passo. A ponte H é um

conjunto de 4 chaves que permite fornecer corrente nos dois sentidos para um

elemento conectado no centro da ponte. As chaves são acionadas em pares, sendo

um par de chaves para cada sentido de corrente. Neste circuito os transistores

bipolares são polarizados na região de saturação atuando portanto como as chaves.

Como o elemento a ser acionado pela ponte H é uma indutância, então quando

for feita a comutação dos transistores para inverter a corrente, a indutância produzirá

sobre o transistor, entre o coletor e o emissor, uma força contra-eletromotriz que

impedirá a variação brusca de corrente. Se os terminais do transistor forem

diretamente submetidos a esta tensão de grande magnitude, com uma corrente

remanescente grande, então a dissipação de calor no elemento será alta, podendo

levar a queima do transistor. Para resolver isto são utilizados diodos em paralelo com

os transistores, os denominados de diodos roda-livre, que fornecem um caminho de

baixa resistência para a corrente remanescente, livrando o transistor da alta

dissipação de calor. Estes diodos são ligados de modo que fiquem inversamente

polarizados em relação a tensão de alimentação.

Já os resistores de potência são utilizados na entrada das pontes H para

suportar a alta dissipação de calor de calor devido as correntes elevadas. Conforme

os testes realizados, a corrente registrada na entrada de uma das pontes H utilizadas,

chegou a 3 A aproximadamente, sendo que os resistores utilizados possuem 2,2 Ω,

isso resulta em uma potência dissipada de 6,6 W. Para efeito de comparação um

resistor comum de carvão tem a capacidade de dissipar sem queimar, até 3W no

modelo com maior capacidade de potência. Os resistores de potência utilizados neste

projeto são do tipo fio, e tem a capacidade de dissipar até 25W.

Page 78: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

64

4.2.2. Lista de Materiais

Abaixo na tabela 1 são mostrados todos os materiais utilizados na montagem

do protótipo eletrônico bem como as designações utilizadas no projeto:

Tabela 1: Lista de componentes do projeto eletrônico.

[Fonte: Autor]

Todo os desenhos técnicos dos circuitos são de autoria própria e se encontram

no Apêndice B deste trabalho.

4.2.3. Montagem

O protótipo do circuito foi montado sobre uma protoboard e os resistores de

potência e diodos foram montados em bornes devido ao tamanho dos mesmos.

Abaixo na figura 52 é mostrada a foto do protótipo montado:

Page 79: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

65

Figura 53. Protótipo montado sobre protoboard. [Fonte: Autor]

Nos testes realizados as correntes obtidas foram de cerca de 2,5 A por motor

acionado, conforme figura 53 abaixo:

Figura 54. Corrente consumida para um eixo acionado. [Fonte: Autor]

Page 80: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

66

Durante a montagem e os testes ocorreram dois erros que consumiram um

tempo razoável para a detecção. O primeiro ocorreu devido a queima de um dos

optoacopladores, possivelmente por uma ligação errada ou inversão da tensão de

alimentação. Isso resultou em um funcionamento irregular do motor de passo já que

uma das fases não estava sendo acionada. E se o motor não for acionado na

sequência correta seu eixo não gira. A identificação do componente queimado foi feita

passo a passo, desconectando os motores, as pontes H, até chegar nos

optoacopladores onde foi identificado o defeito. O componente foi então substituído e

o motor funcionou corretamente.

O segundo erro ocorreu na porta USB do microcontrolador devido à falta de um

capacitor cerâmico na saída designada por Vusb. A falta deste elemento estava

impedindo o computador de reconhecer o dispositivo conectado, provavelmente

devido a erros na transmissão dos sinais nas vias D+ e D-. O erro foi identificado após

a consulta ao manual do fabricante e os exemplos de circuitos com USB lá fornecidos.

Com a inclusão do capacitor o problema foi corrigido.

4.3. Software

Os softwares desenvolvidos para este sistema visam principalmente obter as

coordenadas de um objeto via técnicas de visão computacional, transmitir e receber

estas coordenadas via USB e movimentar a mesa para as coordenadas

correspondentes. Para cumprir estas funções foram desenvolvidos dois softwares,

onde um é o aplicativo de visão computacional que é executado no computador com

sistema operacional Windows, já o outro é o software de controle de movimentos da

mesa, que é gravado diretamente na memória do microcontrolador, podendo ser

chamado também de firmware.

4.3.1. Aplicativo de Visão Computacional

A função deste aplicativo é obter as coordenadas do objeto que será

movimentado em frente a webcam, e transmiti-las para o microcontrolador via porta

serial virtual. Este programa foi desenvolvido em linguagem C++, através do IDE

Page 81: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

67

Eclipse CDT, e o compilador utilizado é o Mingw. Utiliza a biblioteca de visão

computacional OpenCV e uma biblioteca de comunicação serial.

Funcionamento

Inicialmente após inicialização de todas as variáveis, a webcam conectada é

detectada e suas imagens começam a ser armazenadas em uma estrutura de dados

própria da biblioteca OpenCV. Em seguida a porta serial virtual é analisada para

verificar se o circuitos de controle da mesa estão conectados na porta USB, e também

são atribuídos valores de configuração da comunicação serial como número da porta

COM e baud rate. Uma vez feita esta análise e ajustadas as configurações, o

programa entra em loop. Dentro deste laço são utilizadas as classes de visão

computacional e é feita a transmissão de dados.

Inicialmente é feito o pré-processamento da imagem adquirida, mudando-se o

espaço de cor da imagem de RGB para HSV. Isto permite que se possa manipular as

características de cor de uma forma mais intuitiva, sendo estas propriedades a matiz

(H) que é a cor propriamente dita, a saturação (S) que é o quanto a cor está misturada

com luz branca, e a intensidade (V) que denota se a cor é mais clara ou mais escura.

No próximo passo é feita a limiarização da imagem baseada na cor do objeto.

Para tal, são escolhidos os valores máximos e mínimos de H, S e V que denotam um

intervalo de cor. O objeto de referência utilizado neste trabalho estará sob uma

iluminação de cor branca cuja intensidade varia com a posição, isto requer que os

intervalos de S e V possam abranger estas variações. Do mesmo modo o intervalo de

H deve ser ajustado para um intervalo mais restrito que englobe somente a cor

desejada. Cada um dos valores de H, S e V está atrelado a uma variável que pode

ser ajustada através de seis barras deslizantes na interface gráfica. Sendo assim, uma

vez ajustado um intervalo de cor, a operação de limiarização cria uma imagem binária,

de modo que todas regiões que estavam dentro do intervalo de cor, são preenchidas

com pixels brancos e as regiões restantes são preenchidas com pixels pretos. Como

resultado a nova imagem terá somente o objeto em cor branca e o fundo em cor preta.

A etapa seguinte consiste na aplicação de um filtro de suavização, neste caso

o filtro gaussiano descrito no item 3.10.3 deste trabalho. A função desta operação é

Page 82: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

68

provocar um leve efeito de borramento, eliminando assim a maioria dos ruídos

esparsos na imagem binária gerada na última etapa.

Uma vez que a imagem foi limiarizada e filtrada, é possível seguir para a etapa

de extração de caraterísticas. Neste passo o programa analisa a imagem e determina

os momentos geométricos do conjunto de pixels brancos na imagem. A partir destes

valores calcula-se as posições x e y do centro de massa deste conjunto de pixels

conforme descrito no item 3.11. Vale ressaltar que essas operações se aplicam a

todos os pixels brancos na imagem binária, inclusive os ruídos, daí a importância da

filtragem anterior.

Após a obtenção das coordenadas, são iniciadas as rotinas de desenho das

linhas vertical e horizontal e da linha representante da trajetória do objeto. As linhas

horizontal e vertical são linhas paralelas aos eixos x e y respectivamente, que partem

da origem do eixo até coordenada do centro de massa. Já a linha de trajetória é

traçada seguindo o centro de massa do objeto e é atualizada a cada 5 segundos

aproximadamente. Estas linhas são inicialmente desenhadas sobre uma imagem

vazia, onde todos os pixels são pretos, e depois esta imagem é somada a imagem

captada pela câmera. Isso resulta na sobreposição da imagem captada com o

desenho destas linhas. Após essa superposição de imagens é ainda adicionada a esta

imagem final uma caixa de texto contendo as coordenadas atualizadas do objeto.

A última parte do laço de repetição, se refere a transmissão das coordenadas

para a porta COM virtual criada pelo microcontrolador. No protocolo criado, primeiro o

programa recebe uma solicitação do microcontrolador para que seja enviada uma

coordenada específica, caso a solicitação for reconhecida a coordenada é enviada.

Então inicialmente as coordenadas, que são variáveis do tipo inteiro são convertidas

para o tipo caractere, e em seguida a porta serial especificada é monitorada, se o

caractere recebido for “x”, “y”, ”X” e “Y” significa que o microcontrolador está

requisitando os valores atuais das coordenadas x e y.A diferença entre as letras

maisculas e minúsculas, é que após o envio das letras maisculas, as coordenadas

recebidas no microcontrolador serão armazenadas como valores antigos de x ou y,

enquanto depois do envio das letras minúsculas os valores recebidos serão

armazenados como valores atuais.

Page 83: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

69

Fluxograma

Abaixo é mostrado o fluxograma simplificado deste programa resumindo o que

foi dito no item anterior. A função main contém o código principal do programa, e é

declarada após a inclusão das bibliotecas, definições e declaração das variáveis

globais.

Figura 55. Fluxograma simplificado do aplicativo de visão computacional.

[Fonte: Autor]

Page 84: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

70

Classes e funções de visão computacional

As principais classes e métodos de visão computacional utilizados no programa

são explanados abaixo conforme consta em OPENCV(2014):

Mat: É a classe utilizada para armazenar imagens. É possível armazenar

imagens coloridas, de 3 canais, ou imagens binárias, com um único canal. Dentro

desta classe são definidos diversos métodos e atributos, seja para manipulação de

imagens ou para fornecer dados como largura e altura da imagem

VideoCapture: Classe utilizada para capturar as imagens provindas de

arquivos de vídeo ou câmeras, fazendo o armazenamento e descarte continuo destas

imagens em um buffer de imagem.

imshow: Função que mostra uma imagem em uma janela.

createTrackbar: Função que cria uma barra deslizante e associa a mesma a

uma janela e uma variável .

cvtColor: Converte uma imagem de um espaço de cor para outro.

inRange: Função que aplica limiares máximo e mínimo aos valores de

intensidade dos pixels em uma imagem. Em uma imagem colorida, essa função

verifica se os três parâmetros, de um dado espaço de cor, se situam entre os limiares

de cor definidos também por três parâmetros.

GaussianBlur: Função que suaviza uma imagem usando o filtro gaussiano.

Nesta função é possível definir o tamanho da máscara que define o filtro, controlando

assim o grau de suavização.

Moments: Função que realiza o cálculos dos momentos do conjunto de pixels

brancos em uma imagem binária. Os momentos calculados abrangem da primeira até

a terceira ordem. O momento de ordem zero corresponde a área da imagem, enquanto

os momentos de primeira ordem correspondem aos momentos em relação a x e y.

Line: Função que desenha um segmento de reta entre dois pontos definidos.

putText: Desenha uma caixa de texto contendo uma determinada string.

Page 85: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

71

Funções de comunicação serial

As principais classes e métodos de comunicação serial utilizados no programa

são explanados abaixo conforme explanado por BEELEN (2014):

RS232_OpenComport: Função que abre a porta COM, habilitando a mesma

para a comunicação.

RS232_PollComport: Função que recebe caracteres da porta COM

armazenando os mesmos em um buffer.

RS232_cputs: Função que envia caracteres pela porta COM.

RS232_CloseComport: Função que fecha a porta COM.

Interface Gráfica

Abaixo, nas figuras 54 e 55 são mostradas as telas da interface gráfica do

aplicativo. Na figura 54 são mostradas as telas denominadas “Barras Deslizantes” e

“Ajuste de Limiares”.

O ajuste de cor é feito variando os valores de H, S e V na tela “Barras

Deslizantes” e observando a tela “Ajuste de Limiares”. Quando nesta última tela

aparecer somente o objeto em destaque é porque a cor foi ajustada corretamente. A

partir daí é possível fazer ajustes mais finos de modo a englobar as variações de cor

causadas por sombras ou reflexos na superfície do objeto.

Page 86: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

72

Figura 56. Telas de ajuste de valores e visualização. [Fonte: Autor]

Uma referência inicial para os valores de H, S e V do objeto pode ser obtida

através do software de desenho Paint da Microsoft, conforme a figura 55, abaixo:

Page 87: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

73

Figura 57. Paleta de cores do Paint. [Fonte: Microsoft]

Esta paleta de cores se encontra na barra de ferramentas do Paint, clicando-se

em “Editar Cores”. Nesta paleta deve observar os valores de Matiz, Sat e Lum, que

correspondem respectivamente aos valores H, S e V de cor. Estes valores podem ser

tomados como os valores centrais de cada intervalo de H, S e V, sendo possível então

determinar os limiares.

Após o ajuste da cor do objeto a tela principal “Feedback Visual” apresentará

os resultados da seguinte maneira, conforme exemplo da figura 56 abaixo:

Page 88: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

74

Figura 58. Tela principal do aplicativo. [Fonte: Autor]

Conforme o objeto é movimentado em frente a câmera, as coordenadas

atualizadas da mesa são mostradas no canto superior esquerdo da tela. A linha verde,

mais espessa, representa a trajetória do objeto, sendo atualizada a cada cinco

segundos aproximadamente, para que a tela não seja gradualmente poluída com as

trajetórias anteriores.

4.3.2. Firmware de movimentação da mesa

Firmware é o nome dado aos programas que são executados e gravados na

memória de um sistema embarcado tal como um microcontrolador. O firmware deste

trabalho tem como funções principais solicitar e receber as coordenadas do objeto via

comunicação USB, gerenciar a trajetória da mesa empregando a interpolação linear a

cada movimento e gerar os sinais de acionamento dos motores de passo. Este

programa foi desenvolvido em linguagem C, através do IDE MPLAB, e o compilador

utilizado é o C18 v3.47 evaluation mode. Utiliza as bibliotecas de comunicação USB

CDC.

Page 89: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

75

Funcionamento

Na rotina principal incialmente são definidos os pinos de entrada e saída de

sinais. Na sequência a porta USB do microcontrolador é inicializada e configurada e a

interrupção por USB é ativada. Após as configurações iniciais, o primeiro passo

executado é o envio de requisições de coordenadas para o aplicativo no computador.

São enviados os caracteres ‘x’, ‘y’, ‘X’ ou ‘Y’. Cada vez que o aplicativo de visão

computacional recebe um destes caracteres, ele responde, enviando a coordenada

correspondente. O recebimento de uma destas coordenadas ativa a interrupção por

USB do microcontrolador, causando uma pausa no programa principal e desviando o

processamento para a rotina de tratamento desta interrupção. Dentro desta rotina uma

função realiza a leitura dos caracteres recebidos. Uma vez feita a leitura destas

coordenadas em forma de caracteres, é feita a conversão dos mesmos em números,

e estes são armazenadas nas variáveis pertinentes. Na sequência a interrupção é

terminada e o processamento é desviado novamente para o programa principal no

ponto onde parou. O processo acima é repetido em intervalos de tempo definidos até

que sejam obtidas duas posições, em instantes diferentes, permitindo descrever uma

reta. Isto torna o movimento da mesa subdividido em pequenas retas, e atrasado em

relação ao real movimento do objeto, mas é um erro pequeno uma vez que o intervalo

de tempo é da ordem de algumas centenas de milissegundos.

Tendo obtido as posições finais e iniciais da reta, e feita a devida conversão,

estes valores são passados a função de movimentação. Esta função define os

intervalos de movimentação em x e y, calcula a inclinação da reta e aplica o algoritmo

de Bresenham, gerando o conjunto de pontos de destino. Este algoritmo é aplicado

em passos, então a cada incremento de um eixo, o outro é calculado e incrementado

ou não. Cada um desses incrementos em um eixo corresponde a um passo no motor.

Então a cada cálculo de um conjunto x e y pelo algoritmo, é chamada uma outra

função que tem o objetivo de controlar a sequência de passos no motor e gerar os

sinais de acionamento na porta do microcontrolador.

Resulta que os sinais gerados na sequência correta, conforme mostrado figura

41, provocam o giro dos motores, e então o movimento da mesa.

Page 90: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

76

Dentro da rotina principal são também monitorados os sensores fim-de-curso

da mesa, que ao serem acionados provocam a parada do eixo correspondente,

permitindo que somente um movimento de distanciação do fim de curso seja possível.

Fluxograma

Abaixo é mostrado o fluxograma simplificado deste programa resumindo o que

foi dito no item anterior. Tal como no software de visão, a função main contém o código

principal do programa, e é declarada após a inclusão das bibliotecas, definições e

declaração de variáveis globais.

Page 91: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

77

Figura 59. Fluxograma simplificado do firmware de movimentação. [Fonte:

Autor]

Page 92: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

78

Comunicação USB e funções relacionadas

A comunicação USB do microcontrolador com o computador é possível através

do driver “mchpcdc” que junto as bibliotecas de comunicação USB CDC permitem

realizar a emulação de uma porta serial COM. As bibliotecas utilizadas são:

usb_config.h: Contém as configurações possíveis do dispositivo USB.

usb_descriptors.c: Contém os descritores de dispositivos da classe CDC.

HardwareProfile.h: Contém diversas definições relacionadas à kit’s didáticos

da Microchip Technology e deve obrigatoriamente ser utilizada.

Estes arquivos devem ser incluídos no cabeçalho do programa, uma vez

contém todas as funções e variáveis utilizadas na comunicação USB CDC. Todas

estas bibliotecas e o driver de comunicação estão disponíveis no conjunto de arquivos

da Microchip Application Libraries, disponibilizada no site da Microchip Technology.

As principais funções de comunicação USB utilizadas no programa são

explanadas abaixo conforme consta em Miyadaira (2009) e Microchip(2006):

USBDeviceInit: Função responsável por realizar a inicialização e configuração

de todas a variáveis relacionadas ao dispositivo, deixando-o dispositivo no estado

padrão de configuração.

USBDeviceAttach: Função responsável por informar que o dispositivo está

conectado ao barramento USB.

USBUSARTIsTxTrfReady: Função que verifica se é possível enviar dados

para o host através de uma transferência CDC bulk.

putsUSBUSART: Função que envia um conjunto de dados para a USB

incluindo o caractere NULL.

getsUSBUSART: Função que copia um conjunto de dados recebidos de uma

transferência USB CDC Bulk para uma variável definida pelo usuário.

USBDeviceTasks: Função responsável pelo gerenciamento de transferências

do tipo control, processo de enumeração e a detecção de eventos da USB.

Page 93: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

79

CDCTxService: Função que manipula as transações entre o dispositivo e o

host. Essa rotina deve ser chamada uma vez a cada loop da função main.

4.4. Testes de comunicação USB-RS-232 entre Microcontrolador e

Computador

Antes de se executar o aplicativo de visão computacional primeiro é necessário

garantir que a porta COM virtual foi criada. Então com o firmware em execução

inicialmente é conectado o cabo USB na porta do PIC e do computador. Neste instante

é possível visualizar no Windows, em Painel de Controle, e Gerenciador de

Dispositivos, o aparecimento da porta COM5,denominada como USB Serial Port que

é a porta virtual criada pelo firmware e o driver USB da Microchip. Na figura 58 abaixo

é mostrada a porta COM no Windows:

Figura 60.Porta virtual COM5 criada. [Fonte: Autor]

Page 94: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

80

Para a verificação e testes da troca de dados entre o aplicativo de visão e o

firmware foi utilizado o programa RealTerm: Serial Terminal 19 que se encontra

disponível para download gratuito no site do desenvolvedor. Este programa inclui

funções como a abertura de portas seriais virtuais e monitoramento dos dados

trocados.

Nos testes executados, primeiramente foram verificados os dados enviados

pelo firmware, para verificar se todas as requisições estão sendo enviadas. Para tal,

foi criada uma tela de monitoramento da porta COM5 no RealTerm. O resultado obtido

foi:

Figura 61.Requisições enviadas pelo firmware. [Fonte: Autor]

Na figura 60 acima pode ser observado que, a sequência de caracteres obtida

é “x y X Y”, conforme o esperado.

19 Este aplicativo se encontra disponível para download gratuito no site do desenvolvedor, no endereço: http://realterm.sourceforge.net/

Page 95: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

81

No teste seguinte, são enviados os caracteres x e y através do RealTerm para

o software de visão, onde cada caractere é enviado três vezes. Na figura 61 é

mostrada a resposta obtida, onde os caracteres da parte superior são as coordenadas

em x, e na parte inferior estão as coordenadas em y.

Figura 62.Resposta as requisições pelo software de visão. [Fonte: Autor]

A figura 60 acima as coordenadas de x recebidas são: “305”, “307”, “308”. Já

as coordenadas de y são: “159”, “159”, “160”, significando que após cada envio de

uma requisição estão sendo enviadas através da porta COM5 os valores de cada

coordenada.

Page 96: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

82

5. Conclusões

Com a finalidade de implementar um sistema para movimentação de

mecanismos remotos, situados em áreas sob condições adversas, foi proposto neste

trabalho, um sistema de visão computacional que capta as coordenadas de um objeto

movimentado em frente a uma câmera e transfere suas coordenadas para o sistema

de movimentação. A implementação deste sistema ficou dividida em quatro etapas,

basicamente, sendo o desenvolvimento do software de visão computacional, o projeto

e construção da mesa móvel, o projeto e montagem dos circuitos eletrônicos e o

desenvolvimento do firmware de movimentação.

A etapa de desenvolvimento do software de visão, se deu sem maiores

problemas, dada a relativa facilidade de se manusear as diversas funções oferecidas

pela biblioteca OpenCV, além da grande quantidade de exemplos de programas,

fornecidos pelos desenvolvedores desta biblioteca. Nesta etapa foram aplicados os

conceitos de visão computacional explanados ao longo do trabalho, o que permitiu

sistematizar a aplicação de algoritmos de visão. Como resultado foi obtido um

software que analisa as imagens captadas pela câmera, obtêm as coordenadas do

objeto, e cria uma interface gráfica onde são mostradas as coordenadas atualizadas

bem como a trajetória do objeto na tela. Nos testes foi utilizado como objeto uma bola

de cor laranja, cujo ajuste de cor foi feito conforme o procedimento descrito no item

4.3.1, e o resultado obtido é mostrado na figura 56.

Já a etapa de projeto e construção da mesa móvel foi desenvolvida conforme

explanado no item 4.1. O projeto pode ser realizado com poucas dificuldades, e foi

pensado de maneira a ser composto por peças de simples montagem e usinagem,

facilitando as etapas posteriores de confecção e montagem. Parte do conceito, foi

baseado em mesas de movimentação X-Y de uso industrial conforme explanado no

item 3.13. Houveram algumas pequenas dificuldades na confecção e montagem, cuja

explicação e solução são expostas também no item 4.1. Como resultado pode-se

obter uma mesa móvel funcional, que se desloca com baixo atrito entre mancal e

barramento. Nos testes realizados, o firmware foi programado para a realização de

movimentos intermitentes, de ida e volta, e o sistema realizou os movimentos

programados sem a ocorrência de problemas mecânicos. Um dos problemas

encontrados foi o ruído exibido pela mesa, que só pode ser eliminado de maneira

Page 97: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

83

considerável, caso o sistema seja mais rígido e robusto, exigindo então uma

construção de dimensões maiores, com maior peso e maior custo.

A etapa seguinte, de projeto e montagem dos circuitos eletrônicos foi feita com

base nos conceitos explanados nos itens 3.14, 3.15 e 3.16, de modo a prover os sinais

necessários aos motores e realizar a comunicação com o computador, através do

módulo de controle, bem como fornecer a potência necessária aos motores através

do módulo de potência. Como resultado pode-se obter um circuito que realiza o

acionamento dos motores na lógica correta e com a potência requerida. Da mesma

forma o circuito permite que o microcontrolador se comunique com o computador

através da porta USB, conforme os testes de comunicação realizados, e que são

descritos no item 4.4.

A última etapa, referente ao desenvolvimento do firmware de movimentação,

foi feita visando a geração correta de sinais de acionamento, bem como o

estabelecimento da comunicação entre computador e microcontrolador. Conforme os

testes realizados o firmware é capaz de acionar os motores de passo de forma correta

no número de passos que se deseja e no sentido de rotação escolhido. Esses

acionamentos são feitos através da função de movimentação criada, que se mostrou

funcional. O programa também é capaz de receber e enviar dados através da porta

USB, conforme verificado no monitoramento da porta serial, descrito no item 4.4.

Como resultado foi obtido um firmware capaz de realizar o acionamento dos motores

de passo e também a troca de dados via USB.

5.1. Trabalhos e melhorias futuras

Com a finalidade de melhoramento deste sistema e utilização do mesmo em

trabalhos futuros, diversas melhorias podem ser empregadas. Dentre elas, a

calibração de câmera, inclusão de uma segunda câmera, inclusão de um terceiro eixo

na vertical, redução de ruídos na mesa móvel e melhoramento da interface gráfica.

Calibração de câmera

A calibração de câmera visa obter, através de transformações de coordenadas,

a posição e tamanho de objetos em relação a um sistema de referência tridimensional.

Com isso seria possível corrigir as coordenadas do objeto quando o mesmo se

Page 98: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

84

distância do centro da câmera, dando maior precisão ao posicionamento da mesa

móvel

Inclusão de uma 2ª câmera

Dependendo da aplicação pode haver casos em que o mecanismo a ser

controlado esteja muito distante ou mesmo visualmente inacessível. Neste caso o

emprego de uma segunda câmera poderia auxiliar o operador a visualizar a posição

real do mecanismo a ser controlado.

Inclusão de um 3° eixo na mesa móvel

A mesa desenvolvida pode ser aproveitada como uma base de uma máquina-

ferramenta de pequena potência. A inclusão de um 3° eixo, na posição vertical,

acoplado a uma ferramenta de corte rotativa permitiria realizar usinagens em materiais

de baixa resistência mecânica. Somando-se ainda à ideia do item anterior, o terceiro

eixo poderia ser controlado também visualmente com a inclusão de uma terceira

câmera para captar lateralmente a posição do objeto e transferir suas coordenadas

ao novo eixo.

Redução de ruídos

É possível realizar um estudo detalhado da mesa móvel e realizar correções

estruturais nas peças, de modo que seja possível reduzir os ruídos existentes. Uma

das possíveis soluções seria tornar a base principal mais rígida e maciça, tal como em

máquinas-ferramenta, o que iria amortecer boa parte das vibrações. Possivelmente a

inclusão de materiais plásticos com razoável rigidez nas junções entre determinadas

peças, poderia também amortecer boa parte dos ruídos.

Interface gráfica

Nesta interface podem ser empregados, como melhorias futuras, menus e

botões, que permitissem navegar entre telas ou mesmo ajustar parâmetros de visão

e movimentação. Isso requer a utilização de bibliotecas especializadas ou mesmo a

mudança da linguagem de programação do sistema de visão computacional.

Page 99: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

85

6. Cronograma

Abaixo é mostrado o cronograma de pesquisa e desenvolvimento dos tópicos

bem como o desenvolvimento dos programas, projetos e protóripos.

Quadro 1: Cronograma de atividades

[Fonte: Autor]

Page 100: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

86

7. Referências bibliográficas

NOF, Shimon Y. Handbook of Industrial Robotics. Canadá: John Wiley & Sons Inc.,

2ª ed., 1985.

SZELISKI, Richard. Computer Vision: Algorithms and Applications. Springer,

2011. Disponível em: < http://szeliski.org/Book/ >, acesso em: 10 de março de 2014.

SHAPIRO, Linda G.; STOCKMAN, George C. Computer Vision. Prentice Hall, 2001.

Disponível em: < http://www.cse.msu.edu/~stockman/Book/ >, acesso em: 10 de

março de 2014.

GONZALEZ, R, C; WOODS, R, E. Processamento de Imagens Digitais. São Paulo:

Edgard Blucher Ltda., 2000.

MARQUES, O; VIEIRA, H. Processamento Digital de Imagens. Rio de Janeiro:

Brasport, 1999.

NEVES, Antônio L. P.; NETO, Hugo V., GONZAGA, Adilson. Avanços em Visão

computacional. Curitiba: Omnipax, 2012.

VERNON, David. Machine Vision – Automated Visual Inspection and Robot Vision.

New Jersey: Prentice Hall,1991.

FRANCO, Cristiano R. Identificação da utilização de cinto de segurança em

condutores de automóveis através de visão computacional. Itajaí, 2013. Tese

(Mestrado em computação aplicada) – Universidade do Vale do Itajaí, 2013.

MANZI, Felipe A. Aplicação de Visão Computacional para extração de

características em imagens do olho humano. Pará, 2010. Dissertação (Graduação

em Engenharia de Computação) – Escola de Engenharia de São Carlos, Universidade

de São Paulo, 2007.

OPPENHEIM, Alan V.; SCHAFER, Ronald W. Discrete-time Signal Processing.

New Jersey: Prentice Hall, 1999.

Page 101: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

87

PAIVA, Cayo O. N. Introdução a Técnicas de Segmentação de Imagens. Pará,

2010. Dissertação (Graduação em Engenharia de Computação) – Faculdade de

Engenharia da Computação, Universidade Federal do Pará, 2010.

CASTLEMAN, Kenneth R. Digital Image Processing. New Jersey: Prentice Hall,

1996.

ARDAYFIO, David D. Fundamentals of Robotics. New York: Marcel Dekker Inc.,

1987.

CHIANG, Luciano E. 3-D CNC Trajectory Interpolation Using Bresenham’s

Algorithm. 1994 IEEE International Symposium on Industrial Electronics, vol. 1, n. 1,

p. 264-268, maio de 1994.

BRESENHAM, J. E. Algorithm for computer control of a digital plotter. IBM

Systems Journal, vol. 4, n. 1, p. 25-30, 1965.

ZINGL, Alois; A Rasterizing Algorithm for Drawing Curves . Wien, 2012. Disponível

em: < http://members.chello.at/easyfilter/ >, acesso em: 19 de fevereiro de 2015.

MIYADAIRA, Alberto Noboru. Microcontroladores PIC 18 – Aprenda e Programe

em Linguagem C. São Paulo: Editora Érica,1ª ed., 2009.

FITZGERALD, A. E. Máquinas Elétricas. São Paulo: Editora Bookman,6ª ed., 2003.

BASTIAN Solutions. Fanuc iRVision. Disponível em: <

http://www.bastiansolutions.com/robotics/robotic-solutions/vision-guided-

robotics/fanuc-irvision >, acesso em: acesso em: 15 de março de 2014.

SPIE. Making Iris recognition more reliable a spoof resistant. Disponível em: <

https://spie.org/x14548.xml >, acesso em: 15 de março de 2014.

BIOCLINICA. Lesion detection and Tracking in CNS Trials. Disponível em: <

http://www.bioclinica.com/imaging/therapeutic-expertise/neurology/image-

processing/lesion-detection-and-tracking-cns-trials >, acesso em: 15 de março de

2014.

PIXCELLENT. The role of charge coupled devices in low light imaging. Disponível

em: < http://www.pixcellent.com/CCDROLE5.htm >, acesso em: 16 de março de 2014.

Page 102: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

88

PROJETO fotossíntese. Clorofila. Disponível em: <

http://projetofotossintese.blogspot.com.br/2011/03/clorofila.html >, acesso em: 16 de

março de 2014.

DPI Inpe. Processamento digital de imagens. Disponível em: <

http://www.dpi.inpe.br/~carlos/Academicos/Cursos/Pdi/pdi_cores.html >, acesso em:

16 de março de 2014.

SIDIGICOR. Teoria da cor aplicada aos sistemas digitais. Disponível em: <

http://sidigicor.blogspot.com.br/ >, acesso em: 16 de março de 2014.

TEORIA DA COR. Modelo RGB. Disponível em: <

https://sites.google.com/site/aimcjv/modelo-rgb >, acesso em: 17 de março de 2014.

SIP. Introduction to Signal and Image Processing. Disponível em: <

http://miac.unibas.ch/SIP/02-Fundamentals.html >, acesso em: 17 de março de 2014.

CONCI, Aura. Análise de Imagens. Disponível em: <

http://www2.ic.uff.br/~aconci/AI.html >, acesso em: 07 de junho de 2014.

OPENCV. OpenCV (Open Source Computer Vision). Disponível em: <

http://opencv.org >, acesso em: 22 de junho de 2014.

YIGONE. X-Y Axis CNC Worktable. Disponível em: < http://linearguidechina.com/5-

2-2-x-y-axis-work-table.html >, acesso em: 15 de fevereiro de 2015.

NEWMARK. NLS8 Linear Stage. Disponível em: <

http://www.newmarksystems.com/linear-positioners/nls8-series-linear-stage >,

acesso em: 15 de fevereiro de 2015.

MESSIAS, Antônio Rogério. Curso USB/Serial – Controle de Dispositivos.

Disponível em: < http://www.rogercom.com/CursoOnlineUSB >, acesso em: 17 de

fevereiro de 2015.

MICROCHIP. PIC18F2455/2550/4455/4550 Data Sheet. U.S.A, 2006. Disponível em:

< http://ww1.microchip.com/downloads/en/devicedoc >, acesso em: 17 de fevereiro de

2015.

Page 103: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

89

BRITES, Felipe G.; SANTOS, Vinicius P. A. Motor de Passo. Rio de Janeiro, 2008.

Disponível em: < http://www.mc.unicamp.br/files/rf4dfcd6596e33/ >, acesso em: 18 de

fevereiro de 2015.

NEOYAMA. Motor-de-passo-nema-23-torque-15-00-kgfcm-corrente-3-00-a-dat-

i000389-2. São Paulo, 2014. Disponível em: <

http://www.neoyama.com.br/produtos/motores/motor-de-passo/motor-de-passo-

nema-23-torque-1500-kgf-cm-corrente-300-a/ >, acesso em: 18 de fevereiro de 2015.

SCHNEIDER. Introdução ao Motion Control. Disponível em: <

http://www.schneider-electric.com.br/sites/brasil/pt/produtos-servicos/treinamento >,

acesso em: 17 de fevereiro de 2015.

BEELEN, Teunis. RS-232 for Linux, FreeBSD and Windows. Disponível em: <

http://www.teuniz.net/RS-232/ >, acesso em: 23 de fevereiro de 2015.

Page 104: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

90

8. Apêndice A – Desenhos Técnicos da Mesa Móvel

Figura 62. Desenho técnico do CONJUNTO. [Fonte: Autor]

Page 105: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

91

Figura 63. Desenho técnico - BASE 1. [Fonte: Autor]

Page 106: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

92

Figura 64. Desenho técnico - BASE 2. [Fonte: Autor]

Page 107: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

93

Figura 65. Desenho técnico – BASE 3. [Fonte: Autor]

Page 108: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

94

Figura 66. Desenho técnico - EIXO GUIA. [Fonte: Autor]

Page 109: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

95

Figura 67. Desenho técnico – EIXO TR1. [Fonte: Autor]

Page 110: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

96

Figura 68. Desenho técnico – EIXO TR2. [Fonte: Autor]

Page 111: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

97

Figura 69. Desenho técnico – EIXO TR3. [Fonte: Autor]

Page 112: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

98

Figura 70. Desenho técnico - EIXO TR4. [Fonte: Autor]

Page 113: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

99

Figura 71. Desenho técnico – GUIA LINEAR. [Fonte: Autor]

Page 114: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

100

Figura 72. Desenho técnico – MANCAL GUIAS. [Fonte: Autor]

Page 115: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

101

Figura 73. Desenho técnico – MANCAL POLIAS. [Fonte: Autor]

Page 116: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

102

Figura 74. Desenho técnico - POLIA. [Fonte: Autor]

Page 117: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

103

Figura 75. Desenho técnico - SUPORTE DO MOTOR. [Fonte: Autor]

Page 118: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

104

9. Apêndice B – Circuitos Eletrônicos

Figura 76. Circuito – MÓDULO DE CONTROLE. [Fonte: Autor]

Page 119: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

105

Figura 77. Circuito – MÓDULO DE POTÊNCIA. [Fonte: Autor]

Page 120: TG TCC AUTOMAÇÃO UFABC - Operação Remota de Mesa Móvel Utilizando Visão Computacional

106

Figura 78. Circuito – MOTORES DE PASSO. [Fonte: Autor]