Você está na página 1de 72

Centro universitário Positivo – UNICENP

Núcleo de Ciências exatas e Tecnológicas - NCET


Engenharia da Computação.

Mão Biônica.

CURITIBA - 2006
ii
Jaime Joelson Steilein Junior.

Mão Biônica.

Monografia apresentada à disciplina


de Projeto Final, como requisito
parcial à conclusão do curso de
Engenharia da Computação.

Orientador: Prof. Valfredo Pilla Jr.

CURITIBA – 2006

iii
iv
Termo de Aprovação

Jaime Joelson Steilein Junior

Mão Biônica.

Monografia aprovada como requisito parcial à conclusão do curso de Engenharia


da Computação do Centro Universitário Positivo, pela seguinte Banca examinadora:

Prof. Valfredo Pilla Junior (Orientador)


Prof. Alessandro Zimmer
Prof. José Carlos da Cunha

Curitiba, três de novembro de 2006.

v
vi
Agradecimentos

Sem a colaboração e compreensão de familiares e amigos, a conclusão deste


trabalho não seria possível.
Agradeço especialmente a meus pais Jaime e Maria que sempre apoiaram, a
minha namorada Kelly, que sempre colaborou e ajudou durante todo projeto, ao
orientador e amigo Valfredo que sempre forneceu a base e o apoio necessário para que
eu segui-se em frente.

vii
viii
SUMÁRIO
LISTA DE FIGURAS .................................................................................... xi
LISTA DE TABELAS ..................................................................................xiii
LISTA DE SIGLAS ...................................................................................... xv
Resumo ...................................................................................................... xvii
Abstract ...................................................................................................... xix
1 Introdução ................................................................................................. 1
2 Estudo Teórico .......................................................................................... 2
2.1 Garras Mecânicas, uma Analogia a mão Humana................................................. 2
2.1.1 Especificações de uma garra.....................................................................................................3
2.2 Sensores de pressão ............................................................................................... 4
2.2.1 Extensômetros...........................................................................................................................4
2.2.2 Esponja condutora ....................................................................................................................5
2.3 Motores de passo ................................................................................................... 7
2.3.1 Funcionamento do motor de passo ...........................................................................................7
2.3.2 Características...........................................................................................................................9
2.3.3 Circuitos de Acionamento ......................................................................................................13
2.4 FPGA .................................................................................................................... 18
2.4.1 Arquiteturas de células Lógicas ...............................................................................................19
2.4.2 Principais Fabricantes ..............................................................................................................22
2.5 Microcontrolador.................................................................................................. 23
3 Especificação ........................................................................................... 23
3.1 Especificação de Hardware .................................................................................. 23
3.2 Especificação de Software.................................................................................... 26
3.3 Cronograma de desenvolvimento ......................................................................... 28
3.4 Estudo de viabilidade econômica ......................................................................... 28
4 Projeto ...................................................................................................... 29
4.1 Projeto de Hardware ............................................................................................. 29
4.2 Projeto de Software .............................................................................................. 42
5. Testes ....................................................................................................... 44
6.Resultados ................................................................................................ 51
Referências. ................................................................................................. 52
ANEXOS ........................................................ Erro! Indicador não definido.

ix
x
LISTA DE FIGURAS

Figura 1 - Extensômetro simples do fabricante Vishay.................................................... 5


Figura 2 - Ponte de Wheatstone........................................................................................ 5
Figura 3 - Exemplo de aplicação de esponja condutora ................................................... 6
Figura 4 - Exemplo de circuito para utilizando esponja condutora.................................. 6
Figura 5 - Motor de passo de imã permanente (Unipolar) ............................................... 8
Figura 6 - Principio de um motor de passo de Imã Permanente....................................... 8
Figura 7 - Motor de passo de Relutância Variável ........................................................... 8
Figura 8 - Motor Híbrido.................................................................................................. 9
Figura 9 - Motor Unipolar .............................................................................................. 11
Figura 10 - Motor Bipolar .............................................................................................. 11
Figura 11 - Circuito de driver utilizando transistores comuns....................................... 14
Figura 12 - Circuito de driver utilizando transistores Darlington .................................. 14
Figura 13 - Circuito utilizando transistores de efeito de campo de potência ................. 15
Figura 14 - Circuito utilizando o CI ULN 2003 ............................................................. 16
Figura 15 - Seqüenciador utilizando portas XOR e Flip-Flops JK ................................ 17
Figura 16 - Circuito de passo controlado utilizando oscilador....................................... 18
Figura 17 - Circuito de passo controlado utilizando 555 ............................................... 18
Figura 18 - Interconexões de uma FPGA ....................................................................... 19
Figura 19 - Bloco lógico do ACT1 da Actel .................................................................. 21
Figura 20 - Circuito básico da Quicklogic ..................................................................... 21
Figura 21 - Bloco lógico do Xilinx 3000........................................................................ 22
Figura 22 - Pinagem do microcontrolador PIC 16F877A .............................................. 23
Figura 23 - Diagrama em blocos de hardware................................................................ 24
Figura 24 - Fluxograma do hardware da FPGA ............................................................. 25
Figura 25 - Fluxograma do software do PC ................................................................... 26
Figura 26 - Fluxograma do microcontrolador ................................................................ 27
Figura 27 - Motor de passo M35SP - 8P ........................................................................ 29
Figura 28 - Motor de passo PM55L048 ......................................................................... 29
Figura 29 - Interface de potência para motor de passo................................................... 30
Figura 30 - Interface de potência vista superior ............................................................. 30
Figura 31 - Interface de potência vista inferior .............................................................. 30
Figura 32 - Bloco de interface de potência..................................................................... 31
Figura 33 - Bloco da FPGA............................................................................................ 33
Figura 34 - Bloco interno FPGA, Stepper Counter ........................................................ 33
Figura 35 - Fluxograma Stepper Counter....................................................................... 34
Figura 36 - Bloco interno FPGA, Comparador .............................................................. 34
Figura 37 - Fluxograma do Comparador. ....................................................................... 35
Figura 38 - Bloco interno FPGA, Controle Interno....................................................... 35
Figura 39 - Fluxograma Controle Interno FPGA ........................................................... 36
Figura 40 - Bloco interno FPGA, Steppers .................................................................... 37
Figura 41 - Fluxograma dos blocos de Stepper. ............................................................. 37
Figura 42 - Placa do microcontrolador vista superior .................................................... 38
Figura 43 - Placa do microcontrolador vista inferior ..................................................... 38
Figura 44 - Caixa contendo os circuitos do sistema ....................................................... 40
Figura 45 - Caixa do projeto........................................................................................... 40
Figura 46 - Garra vista panorâmica ................................................................................ 41
Figura 47 - Garra vista superior...................................................................................... 41

xi
Figura 48 - Garra vista traseira....................................................................................... 41
Figura 49 - Tela inicial do software ............................................................................... 42
Figura 50 - Erro de comunicação com o PIC ................................................................. 42
Figura 51 - Mensagem de fim de movimento................................................................. 43
Figura 52 - Exemplo de leitura do sensor....................................................................... 43
Figura 53 - Teste do bloco em QuartusII, fechamento................................................... 44
Figura 54 - Teste do bloco em QuartusII, abertura ........................................................ 45
Figura 55 - Teste do bloco em QuartusII, giro de braço para esquerda ......................... 45
Figura 56 - Teste do bloco em QuartusII, giro de braço para direita ............................. 46
Figura 57 - Teste do bloco em QuartusII, giro de pulso para baixo............................... 46
Figura 58 - Teste do bloco em QuartusII, giro de pulso para cima ................................ 47
Figura 59 - Teste do firmware do PIC 1......................................................................... 47
Figura 60 - Teste do firmware do PIC 2......................................................................... 48
Figura 61 - Teste do firmware do PIC 3......................................................................... 49
Figura 62 - Teste de sensor no firmware 1 ..................................................................... 49
Figura 63 - Teste de sensor no firmware 2 ..................................................................... 49

xii
LISTA DE TABELAS

Tabela 1 - Seqüência de acionamento de motor de passo .............................................. 12


Tabela 2 - Fabricantes e Sites......................................................................................... 22
Tabela 3 - Cronograma de desenvolvimento.................................................................. 28
Tabela 4 - Estudo da viabilidade econômica.................................................................. 28
Tabela 5 - Tabela de comandos para acionamento da FPGA......................................... 32
Tabela 6 - Tabela de resposta de movimentos nos motores ........................................... 32
Tabela 7 - Protocolo de comunicação do uC.................................................................. 39
Tabela 8 - Pinos do microcontrolador ............................................................................ 39

xiii
xiv
LISTA DE SIGLAS

FPGA - Field Programmable Gate Array


CPLD - Complex Programmable Logic Device
V - Volts
A - Ampere
LUT - Look-Up Tables
uC - Microcontrolador

xv
xvi
Resumo

A independência e a individualidade do ser humano são aspectos muito valiosos, a idéia


de restituir esta independência a pessoas que sofreram amputações ou mesmo problemas
congênitos é um sonho que será alcançado. Este projeto é mais uma pequena parte de
um esforço global para gerar soluções tecnológicas de próteses para pessoas que tem
problemas com membros superiores, no caso do projeto, a mão. Este projeto consiste no
desenvolvimento de uma garra eletromecânica (protótipo) capaz de realizar movimentos
enviados a partir de um computador.

Palavras Chave: Prótese, Mão Biônica, FPGA, Motores, Sensores, garra


eletromecânica.

xvii
xviii
Abstract

The independency and individuality of the human being are very valuable things. The
idea of restitute this independency to the people who had suffered amputations or even
congenital problems is a dream that will be reached. This project is a small part of a
global effort to generate tecnological solutions of protesys to people who has problems
with the superior members, in this project, the hand. This project consists in the
development of a claw (prototype) able to realize moviments sent from a computer.

Keywords: Prototype, Bionic Hand, FPGA, Motors, Sensors, Eletromechanic claw.

xix
xx
1

1 Introdução

Cada vez mais o desenvolvimento de mecanismos que “simulem” a anatomia


humana é realizado, existem grandes avanços na medicina e biomédica, constantemente
a tecnologia tem ajudado o ser humano a superar esses problemas. O desenvolvimento
sobre FPGAS também tem grande importância no avanço deste campo, pretendemos
demonstrar a importância do emprego de componentes eletrônicos em projetos
envolvendo protótipos de próteses.
Existe uma grande variedade de próteses para membros superiores, a tecnologia
esta caminhando até o ponto onde existem projetos em conjunto com neurocirurgiões
em que o resultado esperado é que o paciente usuário da prótese recupere as sensações,
voltando a sentir dor, calor e pressão em sua prótese da mão (tato).
Em sua grande maioria, as próteses para mãos não possuem mobilidade, e são
utilizadas para melhoria de estética, a grande dificuldade de uma prótese que devolvesse
a autonomia do usuário seria a interface entre os nervos da pessoa e a prótese.
O projeto, através de dispositivos lógicos programáveis, motores, sensores e
microcontrolador realiza movimentos em uma garra mecânica utilizando um
computador.
O desenvolvimento deste projeto ocorreu pelo interesse nas tecnologias
envolvidas, por ser um campo de desenvolvimento muito interessante e promissor, para
tentar contribuir com pesquisa em protótipos e dispositivos lógicos programáveis.
A mão possui três dedos, os mesmos não possuem articulações, através do uso
de motores eles serão moveis, a garra realiza movimentos de abrir, fechar, realiza
rotação sobre o “pulso” e dobra o “pulso”. Um programa no computador realiza a
aquisição de valores de um sensor sobre a garra e também realiza o envio de comandos
para movimentação da garra. Utiliza em sua construção dispositivos lógicos
programáveis para o controle da garra, são utilizados motores para sua movimentação,
microcontroladores, linguagens de programação para construir tanto o software do
computador quanto os embarcados.
2

2 Estudo Teórico

2.1 Garras Mecânicas, uma Analogia a mão Humana

SALISBURY e CRAIG (1982), após pesquisarem cerca de seiscentas


configurações de garras diferentes, concluíram que uma garra na configuração de mão
humana é a que possui maior versatilidade para realizar a manipulação de objetos dos
tipos mais variados, incluindo objetos de formas irregulares, sendo também capaz de
exercer somente a força necessária para segurar tais objetos com estabilidade e
segurança.
Para efeito de comparação, observa-se que uma garra de dois dedos pode
manipular com sucesso aproximadamente 40% dos objetos das mais diferentes formas,
uma garra com três dedos poderia manipular 90% de todos os objetos, e uma na
configuração com quatro dedos poderia manipular em torno de 99% dos objetos
[MATSUOKA, 1995].
Embora uma configuração com a forma da mão humana possua tamanha
versatilidade em função de seus muitos graus de liberdade, sua utilização é inviável
devido à complexidade de construção e controle.
A mão pode ser considerada como um objeto formado por ossos (elos),
ligamentos (juntas) e músculos (atuadores). Esses elementos formam os dedos, a palma
e permitem a realização de movimento entre os elos. As juntas são tencionadas pelos
ligamentos, tendões e músculos. O movimento nas juntas é obtido pela força dos
músculos e é restringido pelos músculos e articulações dos ossos [FERREIRA
ROMANO, 2002].
3

2.1.1 Especificações de uma garra

Como os atuadores do tipo de garra mecânica entrarão em contato direto com o


objeto a ser manipulado, vários fatores devem ser considerados durante sua
especificação para o uso em robôs ou durante a fase de projeto de efetuadores.
Segundo a norma ISO/DIS 14539 (1998) os principais itens são:
- Geometria dos dedos e da palma;
- Posicionamento dos dedos na palma;
- Forma dos dedos e seus movimentos durante o agarramento;
- Número e posicionamento dos sensores;
- Número e posicionamento dos atuadores;
- Mecanismos de transmissão da potência;
- Mecanismo de fixação efetuador /manipulador;
- Tipo de força e agarramento;
- Tempo de operação (de agarramento, tempo de ciclo)
- Tipo de sistema de controle empregado (força e/ou posição)
- Número e material dos dedos;
-Número de graus de liberdade dos dedos;
-Geometria, massa, temperatura máxima e mínima, propriedades magnéticas e
características da superfície do objeto a ser manipulado.
4

2.2 Sensores de pressão

A medida da força é necessária quando desejamos saber ou controlar a força


exercida por uma garra em um objeto que esta sendo manipulado. O método mais direto
de se medir forças é através da utilização de extensômetros, podemos utilizar também é
o sensor feito com esponja (borracha) condutora, além da utilização de chaves que
podem indicar se existe ou não contato sobre a mesma.

2.2.1 Extensômetros

Extensômetros são usados para medir deformações em diferentes estruturas. A


medida é realizada colando um extensômetro nestas estruturas, convertendo a
deformação causada em uma quantidade elétrica (voltagem) e amplificando-a para
leitura em um local remoto. Deformações em várias partes de uma estrutura real sob
condições de serviço podem ser medidas com boa precisão sem que a estrutura seja
destruída. Assim, isto leva a uma análise quantitativa da distribuição de deformação sob
condições reais de operação. Os extensômetros fornecem um método excelente de
converter deformações em quantidade elétrica. As características das medidas com
extensômetros são resumidas abaixo:
• Alta precisão de medição;
• Pequeno tamanho e pouco peso;
• Excelentes respostas aos fenômenos dinâmicos;
• Excelente linearidade;
• Medições possíveis dentro de uma ampla faixa de temperatura;
• Aplicáveis submersos em água ou em atmosfera de gás corrosivo desde que
utilizado tratamento apropriado;
• Usados como elementos transdutores para medidas de várias quantidades
físicas (força, pressão, torque, aceleração, deslocamento);
• Possibilita a medida em locais remotos;
• A saída (sinal analógico, ou após transformação em sinal digital) pode ser
aplicada à engenharia de controle.
5

A Figura 1 mostra um Extensômetro simples do fabricante Vishay, o qual realiza


medições unidimensionais ao longo do eixo principal do Extensômetro.

Figura 1 - Extensômetro simples do fabricante Vishay

Essa Variação é normalmente muito pequena, sendo assim, necessária a


construção de uma ponte de Wheatstone em equilíbrio para uma detecção mais
confiável do sinal [UNESP, 2004]. A Figura 2 mostra configuração da ponte de
Wheatstone:

Figura 2 - Ponte de Wheatstone

Com este circuito, conseguimos evitar ruídos e outras interferências do


ambiente, recuperando somente o sinal desejado na saída, e com o ganho que
desejarmos.

2.2.2 Esponja condutora

Os circuitos integrados, e outros componentes sensíveis a descargas elétricas são


transportados com os terminais enfiados em uma esponja condutora, com a finalidade
de curto-circuitar os terminais mantendo-os, assim, sobre o mesmo potencial de modo
que cargas estáticas não venham a danificá-los. Esta espoja tem resistividade elevada
que se altera quando pressionada [NEWTON BRAGA, 2005].
6

Este comportamento elétrico possibilita sua utilização em um sensor de pressão


simples de montar, conforme a Figura 3.

Figura 3 - Exemplo de aplicação de esponja condutora


A resistência apresentada entre as duas chapas de metal que pressionam a
esponja depende justamente da pressão exercida sobre elas. Um exemplo de um circuito
para acionamento de uma carga externa pela pressão é mostrado na Figura 4.

Figura 4 - Exemplo de circuito para utilizando esponja condutora

Dentre as aplicações deste sensor, podemos citar o sensoriamento de impacto de


um robô, ou ainda da pressão exercida por uma garra de um braço mecânico [NEWTON
BRAGA, 2005].
Podemos também utilizar botões como sensor de pressão, indicando a presença
de pressão ou não.
7

2.3 Motores de passo

Os Motores de passo são motores construídos para fornecer movimentos


intermitentes de rotação em seu eixo. Exemplo de aplicação: o rolo que avança o papel
de uma impressora precisa de um movimento descontínuo, pois deve parar durante a
varredura de cada linha pelo cabeçote de impressão.

2.3.1 Funcionamento do motor de passo

Os motores de passo funcionam convertendo informação digital em movimento


ou em posição.
O modo como suas bobinas são montadas internamente e sua quantidade
determinam a sua maneira de funcionar. O tipo mais comum é o motor de passo de 4
fases, podendo também ser encontrado tipos de 2 fases.
Na operação normal, os fios comuns aos enrolamentos, são conectados ao pólo
positivo de uma fonte de alimentação, na maioria dos casos estas fontes são 12 V e as
correntes exigidas pelos enrolamentos variam tipicamente entre 100 e 500 mA, de
acordo com o tamanho do motor.
Cada rolamento é energizado quando a extremidade livre é aterrada por um
momento, cada vez que o rolamento é energizado, o eixo movimenta um passo, ou uma
fração da volta completa.
Estes acionamentos são realizados com inserção de nível lógico sobre os
enrolamentos do motor, existem três tipos básicos de motores de passo.
Imã Permanente

Motores de passo, tanto magnético permanente quanto híbridos com 5 ou 6 fios


são geralmente esquematizados como mostra a Figura 5 e na Figura 6, com um fio
central em cada um dos enrolamentos. Na prática, usualmente o fio central é ligado ao
pólo positivo da bateria, e os dois finais de cada enrolamento são levados ao pólo
negativo alternadamente para reverter a direção do campo magnético proveniente dos
enrolamentos.
8

Figura 5 - Motor de passo de imã permanente (Unipolar)

Figura 6 - Principio de um motor de passo de Imã Permanente

Relutância Variável

Se o motor possuir Três enrolamentos, tipicamente conectados como mostra a


Figura 7 , com um terminal comum para todos os enrolamentos, este é o tipo mais
comum de motores de passo de relutância variáveis. Em uso, o fio comum tipicamente
vai para o pólo positivo da bateria e os enrolamentos são energizados em seqüência.

Figura 7 - Motor de passo de Relutância Variável


9

O motor exemplo da Figura 7 é de 30° por passo. O eixo desse motor possui 4
dentes e os enrolamentos ficam em volta formando 6 pólos enrolados em volta de dois
pólos opostos. Com o enrolamento número 1 energizado, o dente do eixo marcado com
X é atraído para o pólo desse enrolamento. Se a corrente através do enrolamento 1 for
cortada e o enrolamento 2 for ligado, o motor irá rodar 30° (sentido horário) até que o
pólo marcado com Y se alinhe com o pólo 2 [SOLARBOTICS, 2001] .
Híbrido

O motor de passo híbrido é mais caro que o motor de Imã permanente mas
proporciona uma melhor performace com respeito a resolução de passo, torque e
velocidade. Seu ângulo geralmente vária de 3.6º a 0.9º (100-400 passos por volta). Os
motores híbridos combinam as melhores características dos motores de relutância
variável e de imã permanente, tais como aumento significativo da capacidade de
“agarramento” e também aumento do torque dinâmico e estático (capacidade maior de
torque tanto em repouso quanto em movimento) [SOLARBOTICS, 2001]. A Figura 8
mostra um motor híbrido.

Figura 8 - Motor Híbrido

2.3.2 Características

Dentre as principais características de um motor de passo, podemos citar a


tensão e a corrente que são utilizadas, a seqüência de fases que são utilizadas por eles, o
ângulo de passo do motor, a freqüência de pulsos, o torque e seu efeito de frenagem.
10

Tensão e corrente

Os motores de passo mais comuns são os de 12V, temos também alguns tipos
que operam com tensões de 5V e de 6V.As correntes indicadas são as que circulam
pelas bobinas quando a tensão nominal é aplicada.Podemos, em função da tensão e da
corrente, calcular a resistência do enrolamento aplicando a Lei de Ohm.
Assim em um motor de 12V que opere com corrente de 500mA, terá uma resistência de
enrolamento por fase de :

(1)

Aplicando: R = 12/0,5 R = 24 ohms


O conhecimento da tensão e da corrente nos permite realizar o calculo da
potencia elétrica exigida para o acionamento de cada enrolamento, informação de
grande valia no momento de implementação do circuito para controle e excitação do
motor.
Seqüência

Podemos variados tipos de seqüências de passo para movimentar um motor,


podemos ter o Acionamento por Onda ( Wave Drive ), o Acionamento por passo
completo ( Full Step Drive ),O Acionamento por meio passo ( Half Step Drive ), e o
Acionamento por Micropasso ( Microstepping ).
Cada uma destas seqüências terá um padrão de enrolamentos que será
energizado em um dado momento, na Figura 9 e Figura 10, temos dois motores de
passo, um motor unipolar um motor bipolar, iremos analisar exemplo de seqüência de
acionamento em cada um deles.
11

Figura 9 - Motor Unipolar

Figura 10 - Motor Bipolar


A primeira seqüência é a de Acionamento por Onda, onde somente um
enrolamento é energizado por vez, os enrolamentos são energizados na seqüência A Æ
B Æ /A Æ /B, e o Eixo anda as seguintes posições : 8 Æ 2 Æ4 Æ 6 resultando porém
em perda de torque para ambos os motores.
A seqüência de acionamento por Passo Completo segue a seguinte configuração
para energizar os enrolamentos:
AB Æ /(A)B Æ /(AB) Æ A /(B), o eixo irá girar para as seguintes posições, 1Æ
3 Æ 5 Æ7. O acionamento por passo completo possui o mesmo deslocamento angular
do acionamento de uma fase, mas a mecânica de deslocamento é compensada em uma
metade de um passo inteiro. Este tipo de seqüência aumenta o torque dos motores
bipolares (para motores com os mesmos parâmetros), porém o torque dos motores
unipolares fica em torno de 50%.
O acionamento por meio passo combina ambos acionamento por onda ( Wave
Drive ) e o acionamento por Passo Completo ( Full Step Drive ), tendo assim instantes
12

onde uma só fase é acionada e instantes onde duas fases são acionadas Tem as seguinte
seqüência de pulsos nos enrolamentos:
AB Æ B Æ /(A)B Æ /A Æ /(AB) Æ /B Æ A/(B) Æ A, e a seqüência de
movimento do eixo seria a seguinte : 1Æ2 Æ3 Æ 4 Æ5 Æ 6 Æ 7 Æ 8.
Estes movimentos do eixo em questão angular são metade dos movimentos que
eram adquiridos durante o acionamento por Onda e por Passo completo, isto pode
também reduzir um fenômeno conhecido como ressonância (como todo material, o
motor de passos tem sua freqüência natural. Quando o motor gira com uma freqüência
igual a sua, ele começa a oscilar e a perder passos) que ocorre nos dois modos
mostrados anteriormente.
O modo Micropasso ( Microstepping ) não é muito divulgado, baseia-se no
controle da corrente que flui por cada enrolamento multiplicando pelo número de passos
por revolução.
A Tabela 1 mostra seqüências de pulsos que poderiam ser enviados para realizar
os acionamentos descritos acima.

Tabela 1 - Seqüência de acionamento de motor de passo

Ângulo de passo

Quando energizamos uma bobina de um motor de passo, o eixo gira certo


ângulo, ou seja, “da um passo”. O ângulo desse passo pode variar desde 1,8 até 90
graus. Em um motor de passo de 90 graus por passo, são necessários somente quatro
pulsos de controle para que ele realize uma volta completa em torno do seu eixo. Já com
um motor de 1,8 graus, são necessários 200 pulsos de controle para que ele realize uma
volta completa [NEWTON BRAGA, 2005].
Freqüência dos pulsos

Os motores de passo não se destinam à propulsão de veículos ou movimentação


de mecanismos com grande velocidade, nem à realização de esforços muito grandes.
Assim, existe um limite para a velocidade com que eles podem rodar e, portanto, para a
freqüência máxima de pulsos que lhes pode ser aplicada. Aplicando pulsos a razão de
13

200 por segundo em um motor que tenha passo de 1,8 graus, teremos uma rotação por
minuto, ou 1 rpm.
Isso por que: 200 x 1, 8 = 360 graus ou uma volta completa. Conhecendo o
ângulo do passo e a freqüência dos pulsos, torna-se muito mais simples calcular a
rotação.
Para os tipos comuns, a velocidade máxima recomendada é de 3 rotações por
segundo, ou 180 rpm, acima disso, os motores começam a perder o torque de forma
acentuada [NEWTON BRAGA, 2005].
Para aplicações em que a velocidade é mais importante, são recomendados
outros tipos de motores, e não os de passo.
Torque

Os motores de passo não se destinam a produção de grandes esforços . Por isso


seu torque normal é de apenas algumas gramas por centímetro. Para realizar a
construção de mecanismos que necessitem mover algo pesado, os motores de passo se
tornam inviáveis.
Para contornar esta situação, caso a velocidade não seja algo relevante, podemos
utilizar sistemas que permitam fazer a redução de velocidade, com o aumento
proporcional do torque.
Para que a precisão seja mantida, os mecanismos mais utilizados para isto são as caixas
de redução. [NEWTON BRAGA, 2005].
Efeito de Frenagem

Caso a corrente em um enrolamento seja mantida após o envio de um pulso, o


motor não vai continuar a girar, mesmo sendo mecanicamente focado. Com isso , uma
força se manifesta e tende a manter o motor na mesma posição, isto pode ser utilizado
para realizar a frenagem do motor, uma propriedade fundamental do motor de passo,
que pode ser utilizada em muitos projetos [NEWTON BRAGA, 2005].

2.3.3 Circuitos de Acionamento

Para uma melhor compreensão do funcionamento do motor de passo, vamos


discutir agora circuitos que tem grande importância para controle e para simplificação
de aplicações do motor, eles podem ter como finalidade realizar a construção de pulsos,
estagio de potência, controle do motor, etc. ·.
14

Drivers
Os Drivers ou excitadores, são circuitos destinados ao controle direto de
correntes intensas que circulam pelos enrolamentos dos motores de passo, que em
alguns casos podem chegar até a 500 mA. Para sua construção podemos utilizar
transistores bipolares de média potencia (Darlington ou comuns), transistores de efeito
de campo de potência, ou circuitos integrados.

Figura 11 - Circuito de driver utilizando transistores comuns

Figura 12 - Circuito de driver utilizando transistores Darlington

As figuras Figura 11 e Figura 12 apresentam dois circuitos com transistores


bipolares, um deles com transistores comuns de média potência e o outro com
transistores Darlington de potência.
15

Estes circuitos permitem que seu acionamento seja realizado com lógica digital
TTL e CMOS, podendo até mesmo os sinais da porta paralela serem enviados para
realizar este acionamento, para tanto, seria necessário controle por software da
seqüência dos sinais para que ocorre-se o correto funcionamento do motor [NEWTON
BRAGA, 2005].
Os circuitos podem também ser utilizados com transistores PNP, caso em que a
condução ou a ativação de um enrolamento ocorrerá quando o nível lógico aplicado a
entrada for alto.
Abaixo a Figura 13 contem circuito com transistores de efeito de campo de
potência, que possui uma elevadíssima impedância de entrada. Esta propriedade nos
possibilita que ele seja acionado diretamente por lógica CMOS ou ainda por circuitos de
baixa potência.

Figura 13 - Circuito utilizando transistores de efeito de campo de potência

Existe ainda, o acionamento por Driver utilizando circuito integrado dedicado,


no qual suas entradas são compatíveis com lógica digital, facilitando seu funcionamento
com o mais variado tipo de projetos.
Este circuito pode ser utilizado no controle de motores que tem até 500mA por
bobina, na Figura 14, um exemplo de diagrama, o CI ULN 2003, poderia também ser
substituído por um ULN 2004, que possui características semelhantes.
16

Figura 14 - Circuito utilizando o CI ULN 2003


Seqüenciadores ou Translators

Este tipo de circuito tem por finalidade seqüênciar os pulsos na forma exigida
pelo motor para que ele rode em um sentido ou em outro.
Eles são úteis quando desejamos que o motor de passo seja usado na função de
rodar e se posicionar de maneira precisa em uma aplicação.
Os pulsos aplicados em sua entrada fazem com que o motor avance (ou recue)
um passo. Se este motor for controlado por um PC, ou por um microprocessador, este
seqüênciamento pode ser pode ser feito pelo próprio programa instalado. No entanto, se
isto não ocorrer, precisaremos de um circuito que seja capaz de realizar esta função, por
exemplo, a partir de pulsos gerados por um sensor, uma chave ou um oscilador, temos
várias possibilidades para construir um seqüenciador, uma delas é o seqüenciador com
circuitos digitais comuns (portas XOR e Flip-Flops JK), como apresentado na Figura
15.
17

Figura 15 - Seqüenciador utilizando portas XOR e Flip-Flops JK

Este circuito realiza a saída correta de fases para acionamento dos enrolamentos,
a direção de rotação do motor é definida pela chave SW1 que girará em sentido horário
quando possuir tensão positiva, e que girará no sentindo anti-horário caso esteja
enviando potencial de terra ao circuito. Cada vez que é enviado um pulso ao “STEP” é
realizado um passo (para motores de 4 fases).
Outra forma de se construir o mesmo circuito é utilizar integrados como o UCN
4002, que reúne todos os elementos necessários para o acionamento do motor, com a
mesma facilidade de aplicar o sinal sequencialmente em sua entrada (pulsos).
Circuitos de Passo Controlado

Os circuitos de passo têm por finalidade produzir seqüência de pulsos de


acionamento na velocidade que se deseja fazer o motor se movimentar.
Um circuito que poderia ser utilizado para realizar esta função é um interruptor
comum, porém, existe problemas como o tempo e o repique que complicam o uso deste
dispositivo, existe a necessidade dos pulsos terem uma duração constante para um
acionamento correto, poderíamos então aplicar circuitos monoastáveis para realizar esta
função.
Na Figura 16 e Figura 17 mostramos dois circuitos que poderiam ser utilizados
para este controle,o primeiro, utilizando um oscilador de onda retangular, cuja a
freqüência e a habilitação podem ser controladas externamente. O segundo utilizando
um 555, onde a tempo do pulso será controlado pelo capacitor e o resistor escolhido.
18

Figura 16 - Circuito de passo controlado utilizando oscilador

Figura 17 - Circuito de passo controlado utilizando 555

Controladores

Existem circuitos integrados especiais que incluem as funções de parar o motor


(mesmo com a continuidade de pulsos de entrada), inverter sua rotação, ou ainda
produzir frenagem forçada com a energização constante de um enrolamento. Em deles é
o UCN 4202 que inclui recursos de reabilitação, disparo e PWM. Esta Entrada PWM
serve justamente para controlar a velocidade de rotação do motor pela mudança de
freqüência dos pulsos aplicados. [NEWTON BRAGA, 2005].

2.4 FPGA

A construção de um circuito digital pode ser realizada utilizando diversos tipos


de tecnologia, desde a utilização de portas lógicas primárias (AND, OR, Etc) até a
customização de um chip para realizar o objetivo determinado pelo projeto.
19

Quanto maior a customização do chip, maior a eficiência do seu funcionamento


no projeto, porém os custos se elevam consideravelmente. Uma alternativa que pode ser
adotada, entre o genérico e o totalmente customizado, é o uso de FPGAs. [DEMETRIO
CARRIÓN , 2001].
A arquitetura da FPGA, é semelhante à arquitetura da MPGA ( Mask-
Programmable Gate array ), que consiste em um vetor de blocos que podem ser
programados por interconexões afim de alcançar a lógica desejada.
A Figura 18 apresenta um exemplo das interconexões de uma FPGA.

Figura 18 - Interconexões de uma FPGA

As características de cada FPGA variam de fabricante para fabricante, a primeira


fabricante, e a que possui até hoje a maior parte do mercado é a XILINX que em 1984
lançou a primeira FPGA, na época chamada de LCA (Logic Cell Array).
As FPGA ´s podem ainda ser divididas quanto ao nível de complexidade de sua
célula lógica. Que pode ser de granulação fina, ou de granulação grossa. [PILLA JR ,
2003].

2.4.1 Arquiteturas de células Lógicas

Os blocos lógicos das FPGA ´s diferem muito em tamanho e capacidade de


implementação. O bloco lógico quando formado por dois transistores é utilizados pela
CROSSPOINT pode implementar somente um inversor e ocupa uma pequena área ,
enquanto um bloco utilizando uma LOOK-UP TABLE (LUT) utilizados pela Xilinx
3000 pode implementar qualquer função de até 5 entradas, com o porém do bloco
20

ocupar uma área maior. Podemos então, dividir estes circuitos pelo conceito de
Granularidade, que pode ser de granularidade grossa, ou granularidade fina
[DEMETRIO CARRIÓN , 2001].
Este tipo de divisão torna-se difícil quando levado em conta uma FPGA da
Altera ou da AMD, onde a lógica e o roteamento são intimamente ligados, sendo assim,
difícil de analisar suas contribuições na arquitetura.

Blocos lógicos por granulação fina

Chamado de fine-grain este tipo de bloco lembra células básicas de uma MPGA
, consistindo de poucos transistores que poderiam ser interconectados por programação.
A granulação fina pode ser dividida nas seguintes categorias.
FPGA de Crosspoint: que utiliza par de transistores como bloco lógico.
FPGA de Pressley: onde seu bloco lógico é formado por um NAND de duas
entradas.
Dependendo do fabricante podemos ter blocos diferentes, Algotronix
implementa um bloco de função de duas entradas que é capaz perfazer qualquer função
com duas entradas. Isto é alcançado através da devida configuração de multiplexadores.
O bloco lógico da Concurrent Logic possui um AND de duas entradas e EXOR de duas
entradas. Já a Toshiba utiliza portas NAND de duas entradas. [DEMETRIO CARRIÓN
, 2001].
A principal vantagem de utilizar blocos de fina granularidade é que os blocos
são facilmente utilizados completamente, com a desvantagem de extensos segmentos
para ligações e do uso de vários switchs para construção da lógica, FPGA´s de fina
granularidade, apresentam, em geral, melhor performace e menor densidade do que
FPGA´s de grossa granularidade.

Blocos lógicos por granulação grossa

Blocos lógicos de granulação grossa, ou coarse-grain podem ser formados por


multiplexadores, como o caso do bloco lógico da ACTEL,A Figura 19 mostra o bloco
21

lógico do Act-1. Com este bloco podem-se ser implementadas 702 funções com até 8
entradas e uma saída.

Figura 19 - Bloco lógico do ACT1 da Actel

A Figura 20 mostra o bloco lógico da Quicklogic que é similar ao bloco da


Actel, com a diferença que a entrada dos multiplexadores e seus controles, são
alimentados por portas AND , citando também que as entradas são alternadamente
invertidas, Isto permite blocos inversores não sejam necessários. [DEMETRIO
CARRIÓN , 2001].

Figura 20 - Circuito básico da Quicklogic

Existe também os blocos formados por Look-Up Tables (LUT), a Figura


21 mostra o esquema de bloco utilizado pela Xilinx 3000.
22

Figura 21 - Bloco lógico do Xilinx 3000

A granularidade influencia diretamente na densidade e na performace da FPGA,


na proporção que a granularidade dos blocos crescem,decresce o numero de blocos
lógicos necessários para incrementar uma determinada lógica.Por outro lado, um bloco
mais funcional requer mais circuito para ser implementado, portanto, ocupa maior área.
[DEMETRIO CARRIÓN, 2001]

2.4.2 Principais Fabricantes

A Tabela 2 mostra o nome e o site dos principais fabricantes de FPGA´s.

Tabela 2 - Fabricantes e Sites

Fabricante Site
Actel www.actel.com
Altera www.altera.com
Atmel www.atmel.com
Chip Express www.chipexpress.com
Clear Logic www.clear-logic.com
Cypress www.cypress.com
DynaChips www.dyna.com
Lucent Technologies www.lucent.com
Motorola www.Design-Net.com/fpga
QuickLogic www.quicklogic.com
23

Xilinx www.xilinx.com
Lattice http://www.latticesemi.com

2.5 Microcontrolador

O microcontrolador utilizado no projeto é o PIC 16f877A, devido ao


custo, e por já possuir entradas de conversão A/D que são utilizadas no projeto. A
Figura 22 mostra a pinagem do microcontrolador.

Figura 22 - Pinagem do microcontrolador PIC 16F877A


Dentre as principais características dos microcontrolador escolhido, citamos as
seguintes:
• Possibilidade de utilizar até 33 pinos de I/O;
• Oito entradas de analógicas de 10-Bits de precisão;
• Dois canais para controle PWM;
• UART.
3 Especificação

3.1 Especificação de Hardware

Em nosso Hardware temos uma garra, que possui 3 dedos (sem articulações),
possui os movimentos de abertura e fechamento da mão, utiliza motores de passo para
realizar sua movimentação, ligada a garra, teremos uma FPGA que realiza a interface
entre um microcontrolador e a garra, a função da FPGA será controlar os motores e
trocar informações com o microcontrolador , o microcontrolador é responsável pela
interface de comunicação do computador com a FPGA e interface com o sensor de
pressão, finalmente, o computador é responsável pela visualização dos valores do sensor
e envio de comandos para movimentar a mão. A Figura 23, apresenta o diagrama de
Hardware do projeto.
24

Figura 23 - Diagrama em blocos de hardware


25

Garra: Responsável pela interação com objetos, será controlada pela FPGA,
tem sensor e motores ligados à mesma para possibilitar seu funcionamento, utiliza
motores com transmissão direta.
FPGA: Este bloco é responsável pelo controle da garra, realizar o
seqüenciamento das fases de cada motor, tratamento e envio dos sinais recebidos pela
garra para o microcontrolador.
O Hardware descrito na FPGA envia a seqüência de passos para os motores, os
trata e envia para o microcontrolador o sinal de que o movimento terminou, o uC realiza
a interface com o programa do PC, além de receber informações para movimentação da
garra. A Figura 24 mostra como funciona o software para a FPGA.

INICIO

Aguardando
Comando de
Movimento

Realiza sequência
NÃO Recebeu SIM de movimento
Instrução de
solicitada nos
movimento?
Motores

Figura 24 - Fluxograma do hardware da FPGA

Sensores: Está ligado a garra e interage com o Ambiente, enviando seu sinal
para tratamento no microcontrolador.

Microcontrolador: Responsável pela comunicação entre FPGA e o


microcomputador. Além de realizar o tratamento do sinal adquirido dos sensores
enviando-os para o microcomputador.

PC: Bloco onde existe o programa que irá realizar o controle da garra, e também
onde irão aparecer os valores mostrados pelo sensor.
26

3.2 Especificação de Software

O software no PC mostra os valores dos sensores e envia sinais para o controle


da garra, realizando o acionamento dos motores e assim, movimentando-a. A Figura 25
demonstra o fluxograma do software do PC.

INICIO

Inicialização da
comunicação com
dispositivo de
Hardware.

Sim Não
Envio de
comandos

Sim
Comando de
Movimento
Não

Sim Não
Comando de
Leitura

Não

Envio de Comando
para
Finalizar
Microcontrolador
Programa

Sim

Atualiza valores dos Fecha a porta de


sensores/Fim de Comunicação com
movimento (Recebido do o Hardware.
microcontrolador)

FIM

Figura 25 - Fluxograma do software do PC


27

O Software embarcado do Microcontrolador, através da comunicação serial, irá


interagir com a FPGA e o PC, enviando os dados quando necessário para determinado
sentido. A Figura 26 mostra o fluxograma do firmware do microcontrolador.
INICIO

Inicialização Das
portas do
Microcontrolador

Aguardando
1 recebimento de
comando

SIM NÃO
Comando
Recebido?

NÃO NÃO NÃO


Comando de Comando de Comando de
Movimento? Leitura? Reset?

Aguarda recebimento SIM SIM SIM


de quantidade de
passos, Direção e Tipo
de movimento.

Realiza Leitura da Efetua Reset do


Porta do Sensor Microcontrolador

NÃO

Atualiza portas do 1
Microcontrolador Movimento Envia para o
adequado ao Terminou? Computador o
movimento escolhido. Valor lido no
sensor.
SIM

1
Atualiza as portas do
Microcontrolador.

Envia Sinal para


computador
sinalizando que o
movimento acabou.

Figura 26 - Fluxograma do microcontrolador


28

3.3 Cronograma de desenvolvimento

Tabela 3 - Cronograma de desenvolvimento

3.4 Estudo de viabilidade econômica

Tabela 4 - Estudo da viabilidade econômica

Descrição Quantidade Custo Unitário Total


Horas de trabalho 500 R$ 6,00 R$ 3.000,00
Plataforma de desenvolvimento
1 R$ 2.560,00 R$ 2.560,00
C++ Builder (Unicenp)
Componentes Eletrônicos 1 R$ 600,00 R$ 600,00
Oficce Xp 1 R$ 530,00 R$ 530,00
Win2000 1 R$ 722,00 R$ 722,00
Custo estimado para Produção do
1 R$ 1.000,00 R$ 1.000,00
Protótipo
Plataforma de desenvolvimento
1 (WEB- Gratuito) R$ 0,00
Quartus II
TOTAL R$ 8.412,00
29

4 Projeto

4.1 Projeto de Hardware

Motor

O motor de passo escolhido para ser utilizado em nossa garra foi o M35SP-8P da
Mitsumi, motor unipolar de quatro fases e ângulo de passo de 7.5º e o PM55L048 da
Minebea que possui a mesma configuração de ângulo de passo e também é unipolar.

Figura 27 - Motor de passo M35SP - 8P

Figura 28 - Motor de passo PM55L048

Interface de Potência

O projeto foi iniciado pela parte de controle e interface dos motores com a
FPGA. Circuitos de acionamento padrão para interface de potência com o motor não
atenderam ao nosso problema, pois o circuito integrado aquecia demasiadamente, então,
foi projetado um circuito que suportasse alimentar os motores sem aquecer, o
esquemático encontra-se em Anexo II. E possui os seguintes componentes:
4 Transistores Darlington (Tip 122);
4 Diodos 1N4148;
4 Resistores 10 K ohms;
1 Porta Inversoras Open Colector (74LS04).
30

O funcionamento desta interface será comandado pela FPGA, Ao enviar um


nível lógico alto, para alguma das portas inversoras utilizadas, o acionamento da
referente bobina do motor será efetuado e ela ficará energizada.
A Figura 29 mostra o protótipo da interface de potência.

Figura 29 - Interface de potência para motor de passo

A Figura 30 e Figura 31 mostram a placa da interface de potência em sua versão


final.

Figura 30 - Interface de potência vista superior

Figura 31 - Interface de potência vista inferior


31

A Figura 32 representa o bloco de interface no esquemático principal(ANEXO I)

Figura 32 - Bloco de interface de potência.

FPGA

O hardware utilizado para FPGA durante os testes foi o KIT UP1 do programa
universitário da Altera. O Anexo III mostra como ficou construído seu bloco. Os sinais
de entrada e saída da FPGA são os seguintes:
CLK_SYS : Sinal que irá definir o clock para FPGA, vem do próprio kit da
Altera, e é importante para o funcionamento do bloco da FPGA, pois o mesmo é que irá
controlar o andamento da maquina de estados interna de nosso Hardware e também irá
gerar o clock do contador de passos.
RD : Sinal que quando estiver em nível lógico baixo estará ativo, este sinal é
responsável pela leitura do status da FPGA. Sendo enviado pelo microcontrolador.
WR : Sinal que quando estiver em nível lógico baixo estará ativo, este sinal é
responsável pela escrita na FPGA. Sendo enviado pelo microcontrolador.
CS1 e CS2 : Sinais responsáveis pela indicação de qual registrador a ser
utilizado. Seguindo a seguinte combinação para funcionamento, caso CS1 e CS2
estejam em VCC, será efetuado movimento sobre giro do braço, caso CS1 e CS2
estejam em GND, será efetuado movimento sobre abertura/fechamento da garra, e caso
CS1 esteja em GND e CS2 em VCC, será efetuado movimento sobre giro do pulso.
Estes sinais são enviados pelo microcontrolador.
RST_SC : Responsável pela controle do contador interno de passos da estrutura
da FPGA.Este sinal é inicializado com 000000 cada vez que se envia uma nova
quantidade de passos para ser contada.
DIR : Sinal responsável por definir a direção de cada um dos movimentos
possíveis para garra, caso DIR seja igual a GND ele irá executar movimento de abertura
da garra caso CS1 e CS2 sejam iguais a GND, irá executar giro de pulso para cima caso
32

CS1 igual a GND e CS2 igual a VCC, irá executar giro de braço para esquerda caso
CS1 e CS2 iguais a VCC. Caso DIR seja igual a VCC ele irá executar movimento de
fechamento da garra caso CS1 e CS2 sejam iguais a GND, irá executar giro de pulso
para baixo caso CS1 igual a GND e CS2 igual a VCC, irá executar giro de braço para
direita caso CS1 e CS2 iguais a VCC. Este sinal vem do microcontrolador.
SB[5..0] : Barramento de bits de entrada da FPGA, que indicam quantos passos
devem ser efetuados. Esses valores vem diretamente do microcontrolador.
FASEM0[3..0] : Sinal de saída da FPGA, que indicam o valor de cada fase do
motor 0. Este sinal é enviado para interface de potência para ativação do motor.
FASEM1[3..0] : Sinal de saída da FPGA, que indicam o valor de cada fase do
motor 1. Este sinal é enviado para interface de potência para ativação do motor.
FASEM2[3..0] : Sinal de saída da FPGA, que indicam o valor de cada fase do
motor 2. Este sinal é enviado para interface de potência para ativação do motor.
FDM : Sinal de saída da FPGA, será utilizado para sinalizar ao
Microcontrolador que o movimento chegou ao fim.
Todos estes comandos podem ser visualizados na Tabela 5, Tabela 6 onde temos
um resumo dos comandos possíveis para mão com as sinalizações envolvidas.

Tabela 5 - Tabela de comandos para acionamento da FPGA

Tabela 6 - Tabela de resposta de movimentos nos motores


33

O hardware descrito em nossa FPGA é responsável por comandar os motores da


garra, interpretando o sinal de entrada e trabalhando com os três motores em sua saída.
Ele foi construído no software QuartusII da Altera, na versão gratuita disponibilizada a
estudantes. A Figura 33 mostra o bloco da FPGA.

Figura 33 - Bloco da FPGA

Agora vamos mostrar os blocos internos a FPGA.


O bloco da Figura 34 mostra o bloco contador de passos, este bloco é
responsável pela contagem de passos seu funcionamento é encerrado caso a contagem
chegue ao numero de passos que esta chegando ao comparador.

Figura 34 - Bloco interno FPGA, Stepper Counter


34

INICIO

Não Sim
Atualiza saída com IGUALIN = Para de efetuar
o valor Atual VCC? contagem.

Incrementa valor
do Contador

Não

Reset = VCC

Sim

Inicializa Contador
com 0

Figura 35 - Fluxograma Stepper Counter

A Figura 35 mostra o fluxograma do funcionamento do bloco de contagem de


passos, a saída deste bloco é ligada ao bloco comparador, que compara a os bits da
quantidade de passos desejada com a quantidade de passos já realizada.
A Figura 36 mostra o bloco comparador da arquitetura interna da FPGA, esse
bloco é responsável por receber os sinais vindo de SB[5..0] e comparar com o sinal do
contador de passos interno da FPGA, caso o resultado seja de igualdade, o sinal igual
será ativado com nível lógico alto.Caso os valores sejam diferentes, o sinal de igual terá
nível lógico baixo.

Figura 36 - Bloco interno FPGA, Comparador


35

INICIO

Não Sim
Igual recebe nível SB[5..0] = SSC Igual recebe nivel
lógico baixo. [5..0] lógico alto.

Figura 37 - Fluxograma do Comparador.

A Figura 37 mostra o fluxograma do comparador interno da FPGA. Este


comparador é ligado ao bloco de controle interno que é responsável pela inicialização
correta de cada motor, bem como seu sentido.
A Figura 38 mostra o bloco de controle interno da FPGA, este é o bloco mais
importante internamente a FPGA, pois ele irá interpretar quais motores deve acionar, a
direção e irá sinalizar quando o movimento chega ao fim.
Os sinais de ENOUT0, ENOUT1,ENOUT2 habilitam (VCC) ou desabilitam
(GND) os motores M0, M1 e M2 respectivamente.
Os sinais de CWOUT0, CWOUT1, CWOUT2 habilitam (VCC) ou desabilitam
(GND) o sentido horário para os motores M0, M1 e M2 respectivamente .
Os sinais de CCWOUT0, CCWOUT1, CCWOUT2 habilitam (VCC) ou
desabilitam (GND) o sentido anti-horário motores M0, M1 e M2 .
O sinal de FDM indica se o movimento solicitado chegou ou não ao fim.
A Figura 39 mostra o fluxograma de funcionamento deste bloco.

Figura 38 - Bloco interno FPGA, Controle Interno


36

INICIO

Sim Desabilita Motor0


Não
IGUAILIN = Desabilita Motor1
VCC? Desabilita Motor2
FDM recebe GND

Não Não 1

CS1 e CS2
0e 0 1e1
Igual a ?

Sim Sim

Não
Não Não
RD = VCC e RD = VCC e
1 1 0e1
WR = GND? WR = GND?

Sim Sim 1 Sim

Não
RD = VCC e
1
WR = GND?

Sim

VCC GND VCC GND VCC GND


DIR igual a? DIR igual a? DIR igual a?

Habilita M2 Habilita M2
Habilita M0 Habilita M0 Habilita M0 Habilita M0
Habilita M1 Habilita M1 Habilita M1 Habilita M1 HABILITA sentido DESABILITA sentido
Anti- Horário no Motor2 Anti- Horário no Motor2
Habilita sentido Anti- Desabilita sentido Desabilita sentido Habilita sentido Anti-
Horário do Motor 0 Anti-HoráriodoMotor 0 Anti-Horário do Motor 0 Horário do Motor 0 DESABILITA Sentido HABILITA Sentido
Horário no Motor2 Horário no Motor2
Habilita sentido Anti- Desabilita sentido Habilita sentido Anti- Desabilita sentido
Horário do Motor 1 Anti-Horário do Motor 1 Horário do Motor 1 Anti-Horário do Motor 1

Desabilita sentido Habilita sentido Habilita sentido Desabilita sentido


Horário do Motor0 Horário do Motor0 Horário do Motor0 Horário do Motor0
1 1
Desabilita sentido Habilita sentido Desabilita sentido Habilita sentido
Horário do Motor1 Horário do Motor1 Horário do Motor1 Horário do Motor1

1 1 1 1

Figura 39 - Fluxograma Controle Interno FPGA


O bloco que contém as maquinas de estado que geram a seqüência binária para
as fases de cada motor são chamados de StepperM0, StepperM1 e StepperM2.Estes são
37

responsáveis por interpretar o sinal vindo do bloco de controle interno e realizar o passo
no sentido desejado.A Figura 40 mostra os blocos de Stepper, e a Figura 41 mostra o
funcionamento dos mesmos.

Figura 40 - Bloco interno FPGA, Steppers

Realiza Passo a Direita


INICIO atualizando a saída com o Valore
Correto em Binário

Direita

Não Sim
Motor Habilitado Sentido

Esquerda

Realiza Passo a Esquerda


atualizando a saída com o
Valore Correto em Binário

Figura 41 - Fluxograma dos blocos de Stepper.


Microcontrolador
38

O Microcontrolador é responsável pela comunicação serial, pelo acionamento


correto dos pinos da PFGA e pela leitura do sensor de pressão da garra.
A Figura 42 e Figura 43 mostram a placa do microcontrolador.

Figura 42 - Placa do microcontrolador vista superior

Figura 43 - Placa do microcontrolador vista inferior


O protocolo de comunicação entre o computador e o microcontrolador foi
construído da seguinte maneira:
O computador envia o comando para o microcontrolador pela porta serial, ele
pode ser de três tipos, comando de movimento, comando de leitura e comando de reset.
A Tabela 7 mostra o protocolo que é utilizado para movimentação da garra e
leitura do sensor.
39

Tabela 7 - Protocolo de comunicação do uC

O microcontrolador, aguarda o recebimento de um comando, ao verificar que se


trata de um comando de movimento(MOV), o mesmo aguarda o recebimento de
caracteres pela serial indicando qual o tipo de movimento(A,B ou C), a direção (A ou
H) e a quantidade de passos que será realizada (XX). A quantidade é um numero inteiro
de passos que pode variar de 0 a 63, que são os 6 bits de precisão do contador de passos
da FPGA. Ao terminar o movimento a FPGA envia um sinal ao microcontrolador e o
mesmo envia uma string pela serial dizendo que o movimento chegou ao fim, esta é
interpretada pelo PC e mostra ao usuário que o movimento terminou.
Caso o comando seja de leitura, o microcontrolador efetua a leitura da porta
analógica AN0 que esta ligada ao sensor de pressão da garra, o valor lido é enviado pela
serial para o computador que mostra o resultado ao usuário.
O Comando pode ainda ser um comando de Reset, caso o uC não receba algum
caractere (ou parte de um comando seja perdido) e entre em espera infinita, o
computador, após um período de tempo, irá mandar sequencialmente a letra R até
receber a resposta de que o uC foi resetado. A Tabela 8 mostra os pinos do
microcontrolador que foram utilizados no projeto.

Tabela 8 - Pinos do microcontrolador


40

Alimentação de Circuitos e parte mecânica.


A alimentação escolhida do projeto é constituída por uma fonte de
microcomputador, pois a mesma fornece alimentação para as placas (5V), e também
consegue fornecer a tensão necessária para alimentação dos motores da garra com a
corrente necessária.
Utilizamos uma fonte de 400W da marca satélite. A alimentação do KIT da
Altera é feito por uma fonte que pode ser de 7V a 12V de no mínimo 250mA.
A Figura 44 e Figura 45 mostram a caixa onde foram colocadas as interfaces de
potência, placa do microcontrolador e a fonte de alimentação.

Figura 44 - Caixa contendo os circuitos do sistema

Figura 45 - Caixa do projeto


41

A Figura 46, Figura 47 e Figura 48 mostram a parte mecânica do projeto.

Figura 46 - Garra vista panorâmica

Figura 47 - Garra vista superior

Figura 48 - Garra vista traseira


42

4.2 Projeto de Software

Computador
O Software feito para o PC, foi desenvolvido sobre o Borland C++ Builder 6.0
A Figura 49 mostra a tela inicial do software.

Figura 49 - Tela inicial do software

Funcionamento
Ao inicializar o software o usuário seleciona a porta de comunicação que deseja
utilizar, após selecionada a porta de comunicação o software envia comandos para o
microcontrolador, dependendo da opção selecionada, caso o usuário efetue um
movimento, será enviado um pacote como o mostrado na Tabela 7.
Em seguida, o computador realiza varreduras constantes na serial aguardando a
string que indica que o movimento terminou.
Caso a string não chegue a serial do computador, após um minuto será enviado
continuamente a letra R nove vezes até que o computador receba a sinalização que o
microcontrolador resetou. Caso não ocorra a chegada da string o software apresenta
mensagem de erro. Informando que existe falha na comunicação com o PIC.

Figura 50 - Erro de comunicação com o PIC


43

Caso o PC receba a string indicando que o movimento terminou é apresentada a


mensagem “Fim de Movimento!” Ao usuário.

Figura 51 - Mensagem de fim de movimento

Se o Usuário pressionar o botão de leitura do Sensor o software irá enviar ao


PIC a string “LER” e irá aguardar efetuar a leitura da porta serial após 300ms para
pegar o valor enviado pelo PIC, o resultado da leitura será colocado na tela em um nível
de 8 bits (0 a 255), o sistema irá responder com 255, mostrando que a chave esta aberta
devido ao Pull-Up que foi feito na chave e 0 quando a chave estiver fechada.

Figura 52 - Exemplo de leitura do sensor


44

5. Testes

Interface de potência.

A placa foi testada utilizando a mesa de testes digital e sendo ligada diretamente
aos motores que utilizados para a construção da garra, os motores são: o M35SP-8P da
Mitsumi e o motor PM55L048 da Minebea. Os resultados foram satisfatórios, porém o
motor apresentou aumento de temperatura após grande período de testes, foi adicionado
um resistor de 1 Ohm 15Watts para realizar a dissipação de calor e o problema foi
contornado.

Hardware descrito na FPGA:

Os testes foram realizados no simulador de ondas do próprio QuartusII e no


KitUP1 da Altera.
A Figura 53 Mostra um teste no Software QuartusII sobre abertura/fechamento
com DIR igual a VCC, (fechamento) Solicitando em P_SB que sejam efetuados 6
passos.

Figura 53 - Teste do bloco em QuartusII, fechamento


45

A Figura 54 mostra teste no Software QuartusII sobre abertura/fechamento com


DIR igual a GND (Abertura) Solicitando em P_SB que sejam efetuados 8 passos.

Figura 54 - Teste do bloco em QuartusII, abertura

A Figura 55 mostra teste no Software QuartusII sobre giro de braço com DIR
igual a GND (Esquerda) Solicitando em P_SB que sejam efetuados 3 passos.

Figura 55 - Teste do bloco em QuartusII, giro de braço para esquerda

A Figura 56 mostra teste no Software QuartusII sobre giro de braço com DIR
igual a VCC (Direita) Solicitando em P_SB que sejam efetuados 4 passos.
46

Figura 56 - Teste do bloco em QuartusII, giro de braço para direita

A Figura 57 mostra teste no Software QuartusII sobre giro de pulso com DIR
igual a VCC (Baixo) Solicitando em P_SB que sejam efetuados 7 passos.

Figura 57 - Teste do bloco em QuartusII, giro de pulso para baixo

A Figura 58 mostra teste no Software QuartusII sobre giro de pulso com DIR
igual a GND (cima) Solicitando em P_SB que sejam efetuados 5 passos.
47

Figura 58 - Teste do bloco em QuartusII, giro de pulso para cima

Firmware do Microcontrolador

O firmware do PIC foi testado primeiramente pela simulação no programa


PROTEUS em sua versão Demonstração, e posteriormente em sua própria placa. Para
realizar o teste, simulávamos um loop entre portas virtuais COM1 e COM2
direcionando o software HyperTerminal para a porta COM1 e direcionando o firmware
para a porta COM2, com isto conseguimos validar a comunicação e verificar o
funcionamento do firmware.

Figura 59 - Teste do firmware do PIC 1


48

A Figura 59 mostra a sinalização das portas do Microcontrolador ao inicializar o


dispositivo.

Figura 60 - Teste do firmware do PIC 2

A Figura 60 mostra um teste realizado enviando pelo HyperTerminal o comando


“MOVAA10” que significa que as portas que devem ser habilitadas são os bits SB0 e
SB3 indicando uma contagem binária de 10 passos, o tipo de movimento é o movimento
A (abertura ou fechamento da garra) que é indicado pelos CS1 e CS2 em baixa, e que a
direção é Anti-Horária indicada pelo led de DIR em nível lógico Alto.
Podemos visualizar que o movimento ainda esta em andamento devido ao led de
WR estar em 0 , pois o mesmo ativa em nível lógico baixo, simulando a resposta da
FPGA como pino FDM indo para o nível lógico baixo temos a resposta mostrada na
Figura 61
O pino de WR foi elevado para nível lógico alto após o fim do movimento e
podemos constatar que foi enviado uma string pela serial indicando que o movimento
terminou.
O teste da leitura do sensor funcionou corretamente também como podemos
visualizar na Figura 62 e Figura 63 , onde na primeira temos a o sensor aberto em Pull-
UP (simulado pela chave AN0) enviando ao HyperTerminal 255 após o digitarmos o
49

comando “LER” e enviando 0 na próxima figura,quando a chave já esta pressionada,


após digitarmos o comando de leitura novamente.

Figura 61 - Teste do firmware do PIC 3

Figura 62 - Teste de sensor no firmware 1

Figura 63 - Teste de sensor no firmware 2


50

Os testes foram concluídos com a união de todos os módulos e o teste funcional


da parte mecânica, a mesma foi submetida à teste de fadiga, onde foram realizados
movimentos de forma constante até os motores alcançarem um limite de temperatura.
Foram cerca de 30 minutos de movimentos constantes para alcançar este estado.
Testamos a precisão dos motores, os mesmos mostraram boa precisão e
apresentaram poucas falhas pela parte de movimentação.
A Comunicação entre os módulos funcionou perfeitamente durante os testes.
51

6.Resultados

Analisando o capitulo anterior, podemos constatar que é possível a criação de


um protocolo simples para controle de dispositivos através da interface serial de um
microcomputador, e que é possível realizar de uma maneira mais eficiente o controle de
vários dispositivos (no caso do projeto os motores) utilizando um dispositivo lógico
programável, pois o mesmo oferece maior flexibilidade para lógica que se deseja
implementar, além de possuir dispositivos que possuem uma grande quantidade de
portas que podem ser utilizadas.
Tivemos problemas com aquecimento dos motores após muito tempo de
funcionamento, os mesmos apresentaram uma pequena melhora ao reduzir a tensão, ou
ao colocar um resistor de maior potência para dissipar mais o calor.
Os resultados obtidos no projeto atingiram todas as metas desejadas no inicio do
projeto, um protótipo que realiza movimentos e que realiza a leitura de um sensor de
pressão.
Futuramente a garra pode ter seus motores substituídos por motores maiores,
adicionando mais torque e permitindo que a mesma carregue alguns objetos, é possível
também adicionar sensores analógicos a garra para melhorar a sua interface com o meio
externo.
52

Referências.
SOARES, Marco.; Motor de passo Disponível em: http://myspace.eng.br/como/comoe2.asp , Acessado
Março 2006, Criado em Agosto de 2003
ADVANCED MICRO SYSTEMS.; TYPES OF STEPPER MOTORS Disponível em :
http://www.ams2000.com/stepping101.html#types , Acessado em Março de 2006,
DIAS ROBERTO . PAULO.; Estudo do Motor de Passo Disponível em :
http://www.eletronica.org/modules.php?name=News&file=article&sid=15 Acessado em Março 2006
criado em 14 de abril de 2005
http://www.fem.unicamp.br/~instmed/Deformacao_Torque.htm
BRAGA, Newton. C.; Eletrônica Básica para Mecatrônica - São Paulo : Saber, 2005.
ROMANO, Vitor F.; Robótica Industrial - São Paulo : Edgard Blücher , 2002.
MATSUOKA, Y.;Embodiement and Manipulation Learning Process for a Humanoid Hand
Dissertação, Massachussets Institute of Technology, EUA 1995.
ROBILLARD, Mark J.; Microprocessor Based Robotics Sams ,1986.
CARRIÓN,Demetrio; Field-Programmable Gate Array , Material didático curso Engenharia da
Computação - UFRJ – 2001
PILLA JR Valfredo.; Dispositivos FPGA , Material didático curso de Engenharia Da Computação –
UNICENP - 2003

Você também pode gostar