Escolar Documentos
Profissional Documentos
Cultura Documentos
Mão Biônica.
CURITIBA - 2006
ii
Jaime Joelson Steilein Junior.
Mão Biônica.
CURITIBA – 2006
iii
iv
Termo de Aprovação
Mão Biônica.
v
vi
Agradecimentos
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
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
xiii
xiv
LISTA DE SIGLAS
xv
xvi
Resumo
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.
xix
xx
1
1 Introdução
2 Estudo Teórico
2.2.1 Extensômetros
Relutância Variável
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.
2.3.2 Características
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)
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.
Ângulo de passo
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
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.
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.
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
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
Controladores
2.4 FPGA
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.
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.
lógico do Act-1. Com este bloco podem-se ser implementadas 702 funções com até 8
entradas e uma saída.
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
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
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
Sensores: Está ligado a garra e interage com o Ambiente, enviando seu sinal
para tratamento no microcontrolador.
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
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
FIM
Inicialização Das
portas do
Microcontrolador
Aguardando
1 recebimento de
comando
SIM NÃO
Comando
Recebido?
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.
4 Projeto
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.
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
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.
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
INICIO
Não Sim
Igual recebe nível SB[5..0] = SSC Igual recebe nivel
lógico baixo. [5..0] lógico alto.
INICIO
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?
Não
RD = VCC e
1
WR = GND?
Sim
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
1 1 1 1
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.
Direita
Não Sim
Motor Habilitado Sentido
Esquerda
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.
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.
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.
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.
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
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.
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
Firmware do Microcontrolador
6.Resultados
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