Você está na página 1de 120
UNIVERSIDADE FEDERAL DO ABC Wilson Silva Sousa 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 -

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 -

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.

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.

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.

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)

5

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

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

6

Figura 5. Arquitetura de um sistema de visão

7

Figura

6. Imagem monocromática

10

Figura 7. Formação de uma imagem

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

13

Figura 11. Filtro de

14

Figura 12. Espectro

15

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

da radiação eletromagnética

16

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

17

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

19

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

19

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

Figura 18. Filtro linear com resposta ao impulso

23

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

24

de convolução (à direita)

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

de

24

Figura 21. Matriz representando a imagem

 

25

Figura 22. Máscara 7x7 do filtro gaussiano para

 

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

 

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

 

45

Figura 35. Motor de passo de relutância

 

46

Figura 36. Motor de passo de relutância

46

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

50

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

51

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

52

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

 

54

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

55

Figura 46: Vista em perspectiva da Mesa

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

60

Figura 51. Vista em perspectiva da mesa móvel

61

Figura 52. Vista superior da mesa móvel montada

61

Figura 53. Protótipo montado sobre

65

Figura 54. Corrente consumida para um eixo

65

Figura 55. Fluxograma simplificado do aplicativo de visão

69

Figura 56. Telas de ajuste de valores e

72

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

80

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

81

Figura 62. Desenho técnico do

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

99

Figura 72. Desenho técnico – MANCAL

100

Figura 73. Desenho técnico – MANCAL

101

Figura 74. Desenho técnico - POLIA

102

Figura 75. Desenho técnico - SUPORTE DO MOTOR

103

Figura 76. Circuito – MÓDULO DE

104

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

105

LISTA DE TABELAS

Tabela 1: Lista de componentes do projeto

64

Quadro 1: Cronograma de atividades

85

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

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

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.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

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.

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.

e efetua a ação, e um canal de comunicação entre ambos. Figura 1. Arquitetura de um

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

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

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.

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

(a)

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

(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.

únicas, como as digitais dos dedos e a íris do olho. (a) (b) Figura 3. (a)

(a)

únicas, como as digitais dos dedos e a íris do olho. (a) (b) Figura 3. (a)

(b)

Figura 3. (a) Reconhecimento da íris do olho humano. (b) Reconhecimento da impressão digital. [Fonte: SPIE, 2007.]

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)

entre muitas outras aplicações. (NEVES et. al. , 2012) Figura 4. Detecção de lesões no cérebro

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:

Figura 5. Marques(1999)] Arquitetura de um sistema de visão computacional. [Fonte: A primeira etapa realizada

Figura

5.

Marques(1999)]

Arquitetura

de

um

sistema

de

visão

computacional.

[Fonte:

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.

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

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 − 1,0

0, − 1 − 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 2 n -1, correspondendo a níveis ou tons de cinza diferentes. Neste intervalo de

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

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

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

monocromática com o sistema de coordenadas convencional: Figura 6. Imagem monocromática. [Fonte: Adaptado de

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.

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

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.

atualmente duas tecnologias: os sensores CCD e CMOS. Figura 8. Sensor de imagem CCD . [Fonte:

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.

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:

carga para o capacitor vizinho conforme a figura 9 abaixo: Figura 9. Princípio de operação dos

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:

Figura 10. Transmissão de um quadro de imagem em dispositivo CCD. [Fonte: PIXCELLENT, 2006] O

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.

Figura 11 . Filtro de Bayer. [Fonte: Adaptado de CHEERS4ALL. 3 ] 3.7. Conversão e

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.

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.

frequências abrangendo todo o espectro visível. Figura 12. Espectro eletromagnético. [Fonte: Projeto

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:

Figura 13. Sensibilidade do olho humano em relação ao comprimento de onda da radiação eletromagnética

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:

F igura 14. Cores primárias e secundárias em combinação aditiva. [Fonte: SIDIGICOR, 2012.] Esta mistura

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:

=

=

=

(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

3.8.1. Modelo RGB

(equação 5)

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.

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

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:

Sua representação é mostrada na figura 16 abaixo: Figura 16. Representação gráfica do modelo HSV. [Fonte:

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

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

de março de 2014.

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

=

= 1 − min ", #, $ %

& = cos *+ {

3.9. Limiarização

-

.

* * %

* . * * %

-

.

(equação 6)

(equação 7)

} (equação 8)

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

12

, >

4

, ≤ 4

(equação 9)

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.

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)

para produzir o resultado final. (MARQUES; VIEIRA, 1999) Figura 17. Vizinhança 3x3 definida ao redor de

Figura 17. Vizinhança 3x3 definida ao redor de um pixel de coordenadas (x,y). [Fonte: MARQUES; VIEIRA, 1999.]

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.

determinar a resposta do filtro a imagem de entrada. Figura 18. Filtro linear com resposta ao

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

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

coeficientes M e N são respectivamente o

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.

Conforme exemplo dado por Marques(1999) considera-se uma imagem a ser filtrada e uma máscara de convolução:

uma imagem a ser filtrada e uma máscara de convolução: Figura 19. Matriz representando a imagem
uma imagem a ser filtrada e uma máscara de convolução: Figura 19. Matriz representando a imagem

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.

posição (x,y) é dado pela soma destas multiplicações. Figura 20. Determinação de um ponto na imagem

Figura 20. Determinação de um ponto na imagem filtrada através da operação de convolução. [Fonte: Adaptado de Marques (1999)]

Este procedimento é repetido para todos os pixels da imagem original, resultando então na imagem filtrada:

da imagem original, resultando então na imagem filtrada: Figura 21. Matriz representando a imagem filtrada. [Fonte:

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:

# =

E

.

.F .

.F .

+

√BCD 2 *

(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.

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:

Abaixo é mostrada um exemplo uma máscara para este filtro: Figura 22. Máscara 7x7 do 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.

3.11. Momentos geométricos de uma imagem

momento

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

Segundo

Gonzales

(2000)

o

de

I JK = L

M

*M

M

L

*M

J

K , N N

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

ordem

p+q

de

uma

função

(equação 18)

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

I JK = ∑

OQ

;

OP

;

J

K

,

(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

-T

S

TT

U = S T-

S

TT

(equação 20)

(equação 21)

No caso de uma imagem binária, com um único objeto na cena, o momento m 00 representa a área total do objeto.

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.

sistema de transmissão, entre outras características. Figura 23. Mesa X-Y industrial para posicionamento [Fonte:

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.

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.

que oferecem também boa precisão aos movimentos. Figura 24. Newmark(2014) ] Sistema de posicionamento X-Y em

Figura

24.

Newmark(2014) ]

Sistema

de

posicionamento

X-Y

em

detalhe.

[Fonte:

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.

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

eletrônicos como celulares, tablet’s, etc., e tendo uso em áreas como robótica, instrumentação e eletrônica em geral.

como robótica, instrumentação e eletrônica em geral. Figura 25. Diagrama simplificado de um microcontrolador. de

Figura 25. Diagrama simplificado de um microcontrolador. de Miyadaira (2009)]

[Fonte: Adaptado

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.

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.

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

de

microcontroladores fabricados pela Microchip Technology Inc., baseados na arquitetura Harvard. O nome PIC provêm de “Programmable Interface Controller”.

O

microcontrolador

PIC18F4550

faz

parte

de

uma

família

Figura 26. Pinagem do microcontrolador 18F4550. [Fonte: Inginieria 5 ] Estes dispositivos processam dados de

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

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.

48MHz. Possuem um conjunto de 35 instruções em assembly. Figura 27. Pinagem do microcontrolador 18F4550. [Fonte:

Figura 27. Pinagem do microcontrolador 18F4550. [Fonte: Adaptado de Microchip (2006)]

em:

pic18f4550 >, acesso em: 14 de fevereiro de 2015.

5

Disponível

<

http://cosasdeingenieria.com/esp/index/item/189/55/microcontrolador-

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

PIC18F4550 são:

por

Miyadaira(2009)

as

Faixa de temperatura de trabalho

Tensão de funcionamento

Potência máxima de dissipação

características

elétricas

-40°C a +85°C

4V a 5.5V

1

W

do

Corrente máxima de saída do pino V SS

300mA

Corrente máxima de entrado do pino V DD

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

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.

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.

estão representados os estados lógicos correspondentes. Figura 28. Sinal elétrico padrão RS-232. [Fonte: Adaptado

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

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

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.

fêmea é embutido nos dispositivos que se comunicam. Figura 29. Conector DB9 fêmea. [Fonte: Adaptado de

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

Nos computadores com sistema operacional Windows as portas de comunicação seriais são referidas como portas COM, seguindo uma numeração

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.

sequencial: COM1, COM2

e

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.

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.

Figura

30:

Figura 30: Conector USB, designação dos pinos e cores dos fios correspondentes. [Fonte: Adaptado de SuperUser

Conector

USB,

designação

dos

pinos

e

cores

dos

fios

correspondentes. [Fonte: Adaptado de SuperUser 8 ]

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.

hubs, já o tipo B é utilizado nas portas dos periféricos. Figura 31. Conector DB9 fêmea.

Figura 31. Conector DB9 fêmea. [Fonte: Adaptado de Greenlightgo 9 ]

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.

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:

de transições. A figura 32, ilustra esta codificação: Figura 32. Sinal codificado em NRZI. [Fonte: Adaptado

Figura 32. Sinal codificado em NRZI. [Fonte: Adaptado de Hertfordshire 10 ]

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.

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.

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

fase de seu estator. A velocidade de rotação do rotor é diretamente proporcional a frequência dos pulsos aplicados no estator.

proporcional a frequência dos pulsos aplicados no estator. Figura 33. Motores de passo. [Fonte: Manutenção &

Figura 33. Motores de passo. [Fonte: Manutenção & Suprimentos 11 ]

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.

Figura 34: Funcionamento simplificado de um motor de passo. [Fonte: Adaptado de Savage 1 2

Figura 34: Funcionamento simplificado de um motor de passo. [Fonte:

Adaptado de Savage 12 ]

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.

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.

rotor, que formam o caminho magnético de baixa relutância. Figura 35. Motor de passo de relutância

Figura 35. Motor de passo de relutância variável. [Fonte: Adaptado de EEP 13 ]

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°.

podendo ser encontrados com passos de 7,5° a 15°. Figura 36. Motor de passo de relutância

Figura 36. Motor de passo de relutância variável. [Fonte: Adaptado de Electrical Engineering Assignment 14 ]

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.

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:

do rotor. A figura 37 ilustra a estrutura descrita: Figura 37. Motor de passo Híbrido. [Fonte:

Figura 37. Motor de passo Híbrido. [Fonte: Adaptado de McComb 15 ]

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.

Figura 38. Motor de passo Híbrido. [Fonte: Adaptado de PCBheaven 1 6 ] Ligações elétricas

Figura 38. Motor de passo Híbrido. [Fonte: Adaptado de PCBheaven 16 ]

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.

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

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 McComb 17 ]

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:

ter a seguinte ordem, mostrada nas figuras 40 e 41 abaixo: Figura 40. Sequência de acionamento,

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.

Figura 41. Sequência de acionamento, com duas fases simultaneamente. [Fonte: Adaptado de Neoyama (2014)] O

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.

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:

de complexidade e os tipos de mecanismos que são acionados: Figura 42. Área de aplicação do

Figura 42. Área de aplicação do motion control industrial. [Fonte: SCHNEIDER,

2014]

Arquitetura

A arquitetura típica de um sistema de motion control é mostrada abaixo, na figura 43:

sistema de motion control é mostrada abaixo, na figura 43: Figura 43. Arquitetura típica de um

Figura 43. Arquitetura típica de um sistema de motion control industrial. [Fonte:

Adaptado de EETimes 18 ]

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.

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.

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.

da reta a ser desenhada, assinalando esta posição. Figura 44. Deteminação dos pontos de origem de

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.

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:

de movimentação conforme mostrado abaixo na figura 45: Figura 45. Interpolação linear utilizando o algoritmo de

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.

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:

Figura 46: Vista em perspectiva da Mesa Móvel. [Fonte: Autor] Figura 47. Vista frontal da

Figura 46: Vista em perspectiva da Mesa Móvel. [Fonte: Autor]

Figura 46: Vista em perspectiva da Mesa Móvel. [Fonte: Autor] Figura 47. Vista frontal da Mesa

Figura 47. Vista frontal da Mesa Móvel. [Fonte: Autor]

Figura 48. Vista da lateral esquerda da Mesa Móvel . [Fonte: Autor] Figura 49. Vista

Figura 48. Vista da lateral esquerda da Mesa Móvel. [Fonte: Autor]

Vista da lateral esquerda da Mesa Móvel . [Fonte: Autor] Figura 49. Vista superior da Mesa

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.

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

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:

mola. Na figura 50 é possível ver o acoplamento utilizado: Figura 50. Acoplamento elástico utlizado. [Fonte:

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:

Figura 51. Vista em perspectiva da mesa móvel montada. [Fonte: Autor] Figura 52. Vista superior

Figura 51. Vista em perspectiva da mesa móvel montada. [Fonte: Autor]

Vista em perspectiva da mesa móvel montada. [Fonte: Autor] Figura 52. Vista superior da mesa móvel

Figura 52. Vista superior da mesa móvel montada. [Fonte: Autor]

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

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.

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.

Tabela 1 : Lista de componentes do projeto eletrônico. [Fonte: Autor] Todo os desenhos técnicos dos

[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:

Figura 53. Protótipo montado sobre protoboard. [Fonte: Autor] Nos testes realizados as correntes obtidas foram

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:

de 2,5 A por motor acionado, conforme figura 53 abaixo: Figura 54. Corrente consumida para um

Figura 54. Corrente consumida para um eixo acionado. [Fonte: Autor]

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

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 é

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.

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.

definições e declaração das variáveis globais. Figura 55. Fluxograma simplificado do aplicativo de visão

Figura 55. Fluxograma simplificado do aplicativo de visão computacional. [Fonte: Autor]

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.

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

armazenando os mesmos em um buffer.

porta

COM

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.

Figura 56. Telas de ajuste de valores e visualização. [Fonte: Autor] Uma referência inicial para

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:

Figura 57. Paleta de cores do Paint. [Fonte: Microsoft] Esta paleta de cores se encontra

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:

Figura 58. Tela principal do aplicativo . [Fonte: Autor] Conforme o objeto é movimentado em

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.

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.

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.

Figura 59. Fluxograma simplificado do firmware de movimentação. [Fonte: Autor] 77

Figura 59. Fluxograma simplificado do firmware de movimentação. [Fonte:

Autor]

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.

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:

Microchip. Na figura 58 abaixo é mostrada a porta COM no Windows: Figura 60. Porta virtual

Figura 60.Porta virtual COM5 criada. [Fonte: Autor]

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:

da porta COM5 no RealTerm. O resultado obtido foi: Figura 61. Requisições enviadas pelo firmware. [Fonte:

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/

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.

em x, e na parte inferior estão as coordenadas em y. Figura 62. Resposta as requisições

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.

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

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

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.

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

bem como o desenvolvimento dos programas, projetos e protóripos. Quadro 1: Cronograma de atividades [Fonte: Autor]

[Fonte: Autor]

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.

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

http://www.bastiansolutions.com/robotics/robotic-solutions/vision-guided-

robotics/fanuc-irvision >, acesso em: acesso em: 15 de março de 2014.

Solutions.

Fanuc

iRVision.

Disponível

em:

<

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.

PROJETO

http://projetofotossintese.blogspot.com.br/2011/03/clorofila.html >, acesso em: 16 de

Clorofila.

<

fotossíntese.

Disponível

em:

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

https://sites.google.com/site/aimcjv/modelo-rgb >, acesso em: 17 de março de 2014.

DA

COR.

Modelo

RGB.

Disponível

em:

<

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.

http://www2.ic.uff.br/~aconci/AI.html >, acesso em: 07 de junho de 2014.

Análise

de

Imagens.

Disponível

em:

<

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

http://www.newmarksystems.com/linear-positioners/nls8-series-linear-stage >,

<

Linear

Stage.

Disponível

em:

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.

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

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.

Paulo,

2014.

Disponível

em:

<

http://www.schneider-electric.com.br/sites/brasil/pt/produtos-servicos/treinamento >,

Motion

SCHNEIDER. Introdução ao

Control.

Disponível

em:

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.

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

8. Apêndice A – Desenhos Técnicos da Mesa Móvel Figura 62. Desenho técnico do CONJUNTO. [Fonte:

Figura 62. Desenho técnico do CONJUNTO. [Fonte: Autor]

Figura 63. Desenho técnico - BASE 1. [Fonte: Autor] 91

Figura 63. Desenho técnico - BASE 1. [Fonte: Autor]

Figura 64. Desenho técnico - BASE 2. [Fonte: Autor] 92

Figura 64. Desenho técnico - BASE 2. [Fonte: Autor]

Figura 65. Desenho técnico – BASE 3. [Fonte: Autor] 93

Figura 65. Desenho técnico – BASE 3. [Fonte: Autor]

Figura 66. Desenho técnico - EIXO GUIA. [Fonte: Autor] 94

Figura 66. Desenho técnico - EIXO GUIA. [Fonte: Autor]

Figura 67. Desenho técnico – EIXO TR1. [Fonte: Autor] 95

Figura 67. Desenho técnico – EIXO TR1. [Fonte: Autor]

Figura 68. Desenho técnico – EIXO TR2. [Fonte: Autor] 96

Figura 68. Desenho técnico – EIXO TR2. [Fonte: Autor]

Figura 69. Desenho técnico – EIXO TR3. [Fonte: Autor] 97

Figura 69. Desenho técnico – EIXO TR3. [Fonte: Autor]

Figura 70. Desenho técnico - EIXO TR4. [Fonte: Autor] 98

Figura 70. Desenho técnico - EIXO TR4. [Fonte: Autor]

Figura 71. Desenho técnico – GUIA LINEAR. [Fonte: Autor] 99

Figura 71. Desenho técnico – GUIA LINEAR. [Fonte: Autor]

Figura 72. Desenho técnico – MANCAL GUIAS. [Fonte: Autor] 100

Figura 72. Desenho técnico – MANCAL GUIAS. [Fonte: Autor]

Figura 73. Desenho técnico – MANCAL POLIAS. [Fonte: Autor] 101

Figura 73. Desenho técnico – MANCAL POLIAS. [Fonte: Autor]

Figura 74. Desenho técnico - POLIA. [Fonte: Autor] 102

Figura 74. Desenho técnico - POLIA. [Fonte: Autor]

Figura 75. Desenho técnico - SUPORTE DO MOTOR. [Fonte: Autor] 103

Figura 75. Desenho técnico - SUPORTE DO MOTOR. [Fonte: Autor]

9. Apêndice B – Circuitos Eletrônicos

9. Apêndice B – Circuitos Eletrônicos Figura 76. Circuito – MÓDULO DE CONTROLE. [Fonte: Autor] 104

Figura 76. Circuito – MÓDULO DE CONTROLE. [Fonte: Autor]

Figura 77. Circuito – MÓDULO DE POTÊNCIA. [Fonte: Autor] 105

Figura 77. Circuito – MÓDULO DE POTÊNCIA. [Fonte: Autor]

Figura 78. Circuito – MOTORES DE PASSO. [Fonte: Autor] 106

Figura 78. Circuito – MOTORES DE PASSO. [Fonte: Autor]