joystick para controle do braço mecânico ed-7220c · robot arm ed-7220 of the ed-laboratories....
TRANSCRIPT
Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET
Engenharia da Computação
Eduardo Calixto Severino
Joystick para Controle do Braço Mecânico ED-7220C
Curitiba 2005
2
Centro Universitário Positivo - UnicenP Núcleo de Ciências Exatas e Tecnológicas – NCET
Engenharia da Computação
Eduardo Calixto Severino
Joystick para Controle do Braço Mecânico ED-7220C
Monografia apresentada à disciplina de
Projeto Final, como requisito parcial à conclusão do curso de Engenharia da Computação. Orientador Prof.: Luiz Carlos Pessoa Albini
Curitiba 2005
3
TERMO DE APROVAÇÃO
Eduardo Calixto Severino
Joystick para Controle do Braço Mecânico ED-7220C
Monografia aprovada como requisito parcial à conclusão do curso de Engenharia
da Computação do Centro Universitário Positivo, pela seguinte banca examinadora:
Prof.: Luiz Carlos Pessoa Albini
Prof.: Alessando Zimmer
Prof. : Adriana Cursino Thomé
Curitiba, 07 de novembro de 2005.
4
AGRADECIMENTOS
Aos meus pais que sempre me apoiaram de certa forma para a realização desse
projeto. A todos os professores do curso que com seus conhecimentos, contribuíram, de
forma efetiva para realização desse projeto.
Aos meus amigos e amigas, que me deram todo o apoio ao longo do
desenvolvimento desse projeto.
Aos laboratoristas e colegas, que de certa forma contribuíram para o
desenvolvimento desse projeto.
5
SUMÁRIO
RESUMO................................................................................................................................................................... 11
ABSTRACT............................................................................................................................................................... 12
1. INTRODUÇÃO..................................................................................................................................................... 13
2. FUNDAMENTAÇÃO TEÓRICA ....................................................................................................................... 13
2.1 CARACTERÍSTICAS DO BRAÇO MECÂNICO ........................................................................................................ 14 2.2 ENCODER .......................................................................................................................................................... 16 2.3 DIFERENÇAS ENTRE UM SENSOR E UM TRANSDUTOR ........................................................................................ 19 2.4 ACELERÔMETRO................................................................................................................................................ 20 2.4.1 ACELERÔMETRO ELETROMECÂNICO .............................................................................................................. 21 2.5 CONVERSOR AD................................................................................................................................................ 23 2.6 MICROCONTROLADOR....................................................................................................................................... 24
2.6.1 Microcontrolador 8051 ............................................................................................................................ 24 2.6.1.1 Pinagem do 8051 e suas funções .........................................................................................................................26 2.6.1.2 Modos de operação..............................................................................................................................................27 2.6.1.3 Interface Serial no 8051.......................................................................................................................................28 2.6.1.4 Comunicação RS-232 para o 8051 ......................................................................................................................28 2.6.1.5 Vantagens do 8051 ..............................................................................................................................................29
3. ESPECIFICAÇÃO TÉCNICA ............................................................................................................................ 30
3.1 ESPECIFICAÇÃO DO HARDWARE .......................................................................................................................... 30 3.1.1 Especificação do Joystick......................................................................................................................... 31 3.1.2 Conversão A/D ......................................................................................................................................... 33 3.1.3 Funções do Hardware .............................................................................................................................. 33 3.1.4 Sinal do acelerometro e botões ................................................................................................................ 33 3.1.5 Componentes utilizados............................................................................................................................ 33 3.1.6 Diagrama em blocos com descrição ........................................................................................................ 34 3.1.7 Ambiente de desenvolvimento................................................................................................................... 35
3.2 ESPECIFICAÇÃO DE SOFTWARE.......................................................................................................................... 35 3.2.1 Linguagem e ferramenta de desenvolvimento .......................................................................................... 35 3.2.2 Fluxograma com descrição ...................................................................................................................... 35
3.3 ESTIMATIVA DE INVESTIMENTO ........................................................................................................................ 36 3.3.1 Custos ....................................................................................................................................................... 36
3.3.1.1 Equipamentos ......................................................................................................................................................36 3.3.1.2 Descrição dos itens utilizados no projeto: ...........................................................................................................37 3.3.1.3 Mão de Obra........................................................................................................................................................37 3.3.1.4 Custos de Equipamentos e Softwares ..................................................................................................................37 3.3.1.5 Custo Total ..........................................................................................................................................................37
3.4 MÓDULOS ADICIONAIS...................................................................................................................................... 38 3.5 CRONOGRAMA .................................................................................................................................................. 39
4. PROJETO.............................................................................................................................................................. 40
4.1 DESCRIÇÃO DO TEMA........................................................................................................................................ 40 4.2 MOTIVAÇÃO DO DESENVOLVIMENTO................................................................................................................ 40 4.3 METAS A SEREM ALCANÇADAS.......................................................................................................................... 40 4.4 VISÃO GERAL.................................................................................................................................................... 41 4.5 DIAGRAMA EM BLOCOS DO SISTEMA ................................................................................................................ 41 4.6 PROJETO DE HARDWARE........................................................................................................................... 42
4.6.1 Descrição Detalhada................................................................................................................................ 42 4.6.2 Tabela de Sinais ....................................................................................................................................... 43 4.6.3 Tipo de Barramento.................................................................................................................................. 43 4.6.4 Lógica de Operação do Sinal................................................................................................................... 43 4.6.5 Sinais Analógicos ..................................................................................................................................... 43 4.6.6 Sinais ........................................................................................................................................................ 43 4.6.7 Alimentação Referencia............................................................................................................................ 43 4.6.8 Amplitude ou faixa.................................................................................................................................... 44 4.6.9 Descrição da função do Sinal .................................................................................................................. 44
6
4.6.10 Lista de Materiais................................................................................................................................... 44 4.6.10.1 Modulo Conversor A/D .....................................................................................................................................44 4.6.10.2 Modulo KIT 8031..............................................................................................................................................44
4.3 PROJETO DE SOFTWARE ............................................................................................................................ 46 4.3.1 Diagramas de casos de uso ...................................................................................................................... 46 4.3.2 Diagrama de classes ................................................................................................................................ 47 4.3.5 Interface ................................................................................................................................................... 48
4.4 PROJETO DE FIRMWARE ............................................................................................................................ 50 4.4.1 Diagrama de Estados ............................................................................................................................... 50 4.4.2 Fluxograma do Firmware ........................................................................................................................ 51 4.4.3 COMUNICAÇÃO SERIAL ....................................................................................................................... 52
5. DESENVOLVIMENTO ....................................................................................................................................... 53
5.1 DESENVOLVIMENTO DO MÓDULO DE HARDWARE ............................................................................................. 53 5.1.1 Aquisição de dados do acelerômetro ....................................................................................................... 53 5.1.2 Processamento do Sinal ........................................................................................................................... 55 5.1.3 Envio dos dados para o PC...................................................................................................................... 56
5.2 DESENVOLVIMENTO DO MÓDULO DE SOFTWARE............................................................................................... 57 5.2.1 Leitura dos valores da USB...................................................................................................................... 57 5.2.1 Calibração do Joystick ............................................................................................................................. 57 5.2.2 Determinação dos Movimentos ................................................................................................................ 58 5.2.3 Envio de comandos para o braço-robo.................................................................................................... 58
6 RESULTADOS ...................................................................................................................................................... 59
7 CONCLUSÃO........................................................................................................................................................ 61
8. REFERÊNCIAS BIBLIOGRÁFICAS................................................................................................................ 62
ANEXO I – DIAGRAMA ESQUEMATICO KIT 8051 ........................................................................................ 63
ANEXO II – DIAGRAMA ESQUEMATICO MODULO CONVERSOR A/D .................................................. 64
ANEXO III – ARTIGO TÉCNICO......................................................................................................................... 65
ANEXO IV – MANUAL TÉCNICO ....................................................................................................................... 65
ANEXO V – MANUAL DO USUÁRIO.................................................................................................................. 65
ANEXO VI – DATASHEETS.................................................................................................................................. 65
7
LISTA DE FIGURAS
FIGURA 1 – BRAÇO ROBÔ ED-7220............................................................................................................................. 15 FIGURA 2 - MK4-CONTROLER ..................................................................................................................................... 15 FIGURA 3 –MOVIMENTAÇÃO TRAPEZOIDAL ................................................................................................................. 15 FIGURA 4 – ENCODER .................................................................................................................................................. 16 FIGURA 5 – ACELEROMETRO ELETROMECÂNICO.......................................................................................................... 21 FIGURA 6 - ACELERÔMETRO ELETROMECÂNICO .......................................................................................................... 22 FIGURA 7 – DIAGRAMA EM BLOCOS DO ACELERÔMETRO.......................................................................................... 22 FIGURA 8 – DIAGRAMA EM BLOCOS DO CONVERSOR A/D ........................................................................................... 23 FIGURA 9 – PINAGEM DO MICROCONTROLADOR.......................................................................................................... 25 FIGURA 10 – MODO EXPANDIDO COM RAM E ROM ................................................................................................... 27 FIGURA 11 DIAGRAMA EM BLOCOS DO HARDWARE ..................................................................................................... 30 FIGURA 12 - MODELO DE JOYSTICK A SER UTILIZADO.................................................................................................. 31 FIGURA13 – BOTÕES DO JOYSTICK .............................................................................................................................. 32 FIGURA 14 – PROCESSO DE CONVERSÃO DO SINAL....................................................................................................... 33 FIGURA 15 – DIAGRAMA EM BLOCOS COM DESCRIÇÃO ................................................................................................ 34 FIGURA 16 – FLUXOGRAMA BÁSICO DO SOFTWARE ..................................................................................................... 35 FIGURA 17 - CRONOGRAMA DO PROJETO ..................................................................................................................... 39 FIGURA 18 – DIAGRAMA EM BLOCOS DO PROJETO ................................................................................................... 41 FIGURA19 – MÓDULOS DO HARDWARE ....................................................................................................................... 42 FIGURA 20 - DIAGRAMAS DE CASOS DE USO................................................................................................................. 46 FIGURA 21 - DIAGRAMA DE CLASSES ........................................................................................................................... 47 FIGURA 23 – TELA INICIAL DO SISTEMA ....................................................................................................................... 48 FIGURA 24 – MENSAGEM INFORMANDO QUE O JOYSTICK ESTA CALIBRADO ................................................................ 49 FIGURA 25 – TELA DE CONFIGURAÇÃO DO SISTEMA..................................................................................................... 49 FIGURA 26 – DIAGRAMA DE ESTADOS DO FIRMWARE................................................................................................ 50 FIGURA 27 – FLUXOGRAMA DO FIRMWARE ................................................................................................................. 51 FIGURA 28 – PACOTE DE TRANSMISSÃO SERIAL 1 ........................................................................................................ 52 FIGURA 29 – LOCAL ONDE O ACELEROMETRO ESTA POSICIONADO............................................................................... 53 FIGURA 30 – ACELERÔMETROS E BOTÕES LIGADADOS NO CONVERSOR A/D............................................................... 54 FIGURA 31 – PINOS UTILIZADOS PARA FAZER O ENDEREÇAMENTO DO CONVERSOR..................................................... 55 FIGURA 32 – LIGAÇÃO DO CONVERSOR A/D E DO 8031 ............................................................................................... 55 FIGURA 33 – PROTOCOLO DE COMUNICAÇÃO............................................................................................................... 56 FIGURA 34 – CAIXA DESENVOLVIDA PARA ACOMODAR OS MÓDULOS DE HARDWARE ................................................ 59 FIGURA 35 – VISTA INTERNA DA CAIXA....................................................................................................................... 60 FIGURA 36 – JOYSTICK DESENVOLVIDO NO PROJETO ................................................................................................... 60
8
LISTA DE TABELAS
TABELA 1 – COMANDOS DO MK4-CONTROLLER .......................................................................................................... 18 TABELA 2 - TABELA DE SINAIS .................................................................................................................................... 43 TABELA 3 - TIPO DE BARRAMENTO .............................................................................................................................. 43 TABELA 4 – LÓGICA DE OPERAÇÃO ............................................................................................................................. 43 TABELA 5 – COMPONENTES DO MODULO CONVERSOR A/D ........................................................................................ 44 TABELA 6 – COMPONENTE DO MODULO KIT-8031 ..................................................................................................... 45
9
LISTA DE SIGLAS
CI – Circuito Integrado. ADC – (Analogic to Digital Conversor) – Conversor Analógico Digital EPROM - Erasabel Programmable Read-Only Memory TTL – Transistor-Transistor Logic RS232 – Recommended Standard number 232 from the Electronic Industry Associantion UNICENP – Centro Universitário Positivo PC – Personal Computer (Computador Pessoal) NCET – Núcleo de Ciências Exatas e Tecnológicas USB – Universal Serial BUS RAM – Ramdom Access Memory ROM – Ready Only Memory
10
LISTA DE SIMBOLOS
Bytes – 8-bits Vcc – Tensão Contínua Gnd – Ground (Terra) µ - micro Ω – ohm V – Volt bps – bits por segundo
11
RESUMO
Este projeto tem como objetivo, o desenvolvimento de um joystick analógico e
uma interface de comunicação micro-controlada para prover todos os comandos para o
braço robô Ed-7220C da Ed-Laboratories. O sistema é composto por um módulo de
hardware e um módulo de software. O módulo de hardware é responsável por fazer a
aquisição dos dados do joystick e enviar para o PC. O módulo de software faz o
processamento e a análise dos dados provenientes do módulo de hardware, e
posteriormente envia os comandos para controlar o braço-robô.
Palavras-chave: Joystick, Ed-7220C, braço-robô.
12
ABSTRACT
This project has as objective, the development of an analogical joystick and an
micro-controlled communication interface in order to supply all the commands to the
Robot Arm Ed-7220 of the Ed-Laboratories. The system is composite by a hardware
module and a software module. The hardware module is responsible by doing the
acquisition of the data from de joystick and sends it to the PC. The software module,
does the data processing and the analysis of the data proceeding of the hardware
module, and later sends the commands to control the robot-arm.
Key-Words: Joystick, Ed-7220C, robot-arm.
13
1. INTRODUÇÃO O braço robô Ed-7220C da Ed-Laboratories, é um braço para fins didáticos que
possui 6 motores e 5 junções. Ele não possui um joystick para seu controle, sendo
necessário utilizar um controle remoto chamado Teach Pendant para realizar essa
função. Em razão disso, existe a necessidade da construção de um joystick que seja
capaz de fornecer todos os comandos para controlar o braço robô.
Esse projeto visa o desenvolvimento de um joystick dotado de sensores
analógicos (acelerômetros) e botões para o controle através da interface serial do robô
Ed-7220. O joystick não fará a comunicação direta com o robô, mas sim com a
interface MK4 - Controler. Essa interface faz a “ponte” entre o Joystick e o braço robô.
Este trabalho está dividido em seis partes. (1) fundamentação teórica onde é
feita a revisão da literatura e apresentada a teoria necessária para a realização deste
projeto, (2) especificação técnica com sua lógica e com os respectivos diagramas
lógicos, (3) proposta de cronograma, bem como os recursos e custos estimados para o
seu desenvolvimento, (4) projeto do hardware e do software, contendo informações
relevantes sobre os componentes, circuitos e softwares que foram utilizados nesse
trabalho, (5) apresentação e discussão dos resultados, (6) serão apresentadas as
conclusões e as referências bibliográficas.
14
2. FUNDAMENTAÇÃO TEÓRICA
Este capítulo trata dos conceitos básicos envolvidos neste projeto. Tais
conceitos são descritos de forma detalhada, conforme a seqüência apresentada a
seguir:
2.1 Características do Braço Mecânico
O modelo disponível do braço mecânico que é utilizado neste projeto é o ED-
7220 - ARM Robot Trainer do ED Laboratory. Este modelo é composto por cinco
junções:
• Cintura;
• Ombro;
• Cotovelo;
• Pulso e
• Mão.
Possui seis movimentos:
• Um para cada junção e
• Um para abertura e fechamento da mão
Cada uma dessas junções é controlada por um servo-motor com exceção do
pulso, que é controlado pelo movimento combinado de dois servo-motores. Cada
junção é controlada por um motor DC, e a posição do motor é determinada pelo
encoder que cada motor possui. O funcionamento do encoder será explicado mais a
frente. Para fazer a comunicação com o robô, é necessário utilizar o protocolo próprio
do MK4-Controler. O MK4-Controler possui uma conexão serial RS-232, que possibilita
o envio dos comandos para o controle do robô. Uma imagem do robô com suas
junções pode ser observada na figura 1.
15
Figura 1 – Braço Robô ED-7220
Para fazer a comunicação entre o Joystick e o braço mecânico é utilizado o
hardware MK4-Controller. A programação desse hardware pode ser feita de duas
formas: pelo protocolo próprio, como citado anteriormente, ou através de um outro
hardware conhecido como Teach Pendant. Por meio do Teach Pendant a programação
é transferida para o MK4-Controler que, por sua vez, comanda a movimentação dos
motores. No projeto foi utilizada a comunicação pelo protocolo próprio.
Figura 2 - MK4-Controller
Cotovelo
Cintura
Mão
Ombro
Pulso
16
O MK4-Controller permite o ajuste de velocidade, aceleração, tipo de
movimentação, e demais configurações para controlar os servo-motores do robô. É
possível também fazer o controle de esforço de cada motor, armazenamento de
posição atual, controle de vários tipos diferentes de robôs e outras funções. No projeto,
foi escolhida a movimentação do tipo trapezoidal, conforme mostra a figura 3.
Figura 3 - Movimentação Trapezoidal
Neste tipo de movimentação o motor afetado acelera até a velocidade
programada, permanece nela até chegar próximo ao seu destino e gradualmente
desacelera até parar o motor completamente. É interessante ressaltar que se o destino
do motor for encontrado antes dele atingir a sua velocidade este irá desacelerar, não
importando a velocidade atual.
2.2 Encoder
O encoder é um dispositivo que gera pulsos a cada grau de rotação do eixo do
motor. Isso é muito útil, pois é possível comandar o motor para ir até uma posição
específica sem ter que posicionar sensores para detectar o fim do movimento. Os
servo-motores mantém suas posições mesmo após o fim do estimulo elétrico.
Figura 4 – Encoder
Mantém velocidade
Reduz velocidade
Aumenta velocidade
17
Inicialização: Para que o Robô possa funcionar é necessário definir alguns
parâmetros como velocidade, aceleração e tipo de movimentação. Deve-se definir
também o tipo de robô que o MK4-Controler irá controlar e se os comandos serão
enviados pelo Teach Pendant ou pela interface serial, que é chamado de host. Esta
tarefa de transferência de controle deverá ser a primeira executada, pois algumas
outras tarefas, como movimentação de motores não pode ser feita pelo host se o
Teach estiver com o controle.
Definição da posição destino do motor: é tarefa de informar ao MK4 em qual
posição que o motor deverá parar. Essa posição é contada em pulsos do encoder e
pode ser:
• Absoluta: é a contagem absoluta do motor que vai de –32768 a 32767.
• Relativa: na qual se informa ao motor qual será o incremento em pulsos do
encoder que o motor irá executar, a partir da posição atual.
Acionamento do motor: o MK4 aciona o motor até que a posição atual se
iguale à posição de destino, seja ela absoluta ou relativa. A partir da execução deste
passo o MK4 já pode receber uma outra posição de destino para o motor, porém esta
movimentação só será executada depois que a atual for concluída. A informação
anterior fica armazenada em um buffer no MK4-Controler.
No projeto o robô será configurado como um braço mecânico do tipo XR4. Esta
configuração permite utilizar toda a funcionalidade oferecida pelo braço robô ED-7220.
Esta funcionalidade diz respeito ao número de motores e junções que podem funcionar.
No caso do XR4 estão disponíveis cinco junções e seis motores. Abaixo os motores e
suas respectivas junções:
- Junção da mão: motor A → movimento de abre e fecha da garra;
- Junção do pulso: motores B e C → movimento vertical (azimutal) e de rotação;
- Junção do cotovelo: motor D → movimento vertical;
- Junção do ombro: motor E → movimento vertical;
- Junção da cintura: motor F → movimento de rotação.
18
O hardware MK-4 possui um protocolo já definido, o qual interpreta comandos
previamente definidos tais como:
Comando Descrição Retorno Parâmetro
SA Retorna qual motor esta se movendo.
Retorna o valor decimal correspondente.
SM, m Retorna o modo do motor
1 se esta no modo Trapezoidal
m=A, B, C, D, E, F
CG Habilita ou desabilita a mão
0 desabilita – 1 habilita
CM, m, d Seta o modo do motor
m=A, B, C, D, E, F d = 1 – modo trapezoidal.
CR, d Seta o tipo do Robô d = 0 – XR-
GS Verifica o status da mão
1 se fechada, 0 se aberta
PA, m Verifica posição atual do motor
Retorna a posição em pulsos no encoder
m=A, B, C, D, E, F
GC Abre a mão GO Fecha a mão
HH Posiciona o Robô na posição inicial
MA Para todos os motores
MC Move todos os motores para posição de destino.
MS,m
Move o motor m para a posição armazenada no registrador.
m=A, B, C, D, E, F
PR,m,d Seta o destino do motor, usando o movimento relativo.
m=A, B, C, D, E, F -32767 <= d <= 32767
VC,m,d Seta a velocidade do motor
m=A, B, C, D, E, F -100 <= d <= 100
Tabela 1 – Comandos do MK4-Controller Todos os comandos utilizados estão descritos nesta tabela. Com esses 15
comandos básicos, é possível fazer todo o acionamento e controle do robô. Esses
comandos são enviados pelo software que roda no PC, através da interface serial RS-
232. A velocidade de transmissão padrão do MK4-Controler é 9600 bps.
19
2.3 Diferenças entre um Sensor e um Transdutor
Uma importante função da eletricidade é a possibilidade de medir grandezas
físicas como temperatura, aceleração, posição, força, pressão entre outros fatores.
Para tanto é necessário transformar essas grandezas físicas em grandezas elétricas,
daí a importância da eletricidade. A função de transformação de uma grandeza, ou uma
forma de energia em outra, pode ser realizada por um sistema conhecido como
transdutor. Em resumo, transdutor é um sistema que transforma uma forma de energia
para fins de medida.
Existe sempre uma confusão entre sensores e transdutores, porém por definição
o transdutor é o sistema por inteiro, que produz um sinal devidamente proporcional à
grandeza física que esta sendo medida. Por outro lado o sensor é apenas a parte do
transdutor que “sente” a grandeza física a ser medida pelo transdutor.
O transdutor tem como finalidade:
• Detectar a presença, a mudança, a amplitude ou a freqüência de uma
determinada medida;
• Providenciar na saída um sinal elétrico, quando convenientemente processado e
aplicado a um aparelho de medida que nos permite quantificar o elemento
medido. Esse elemento pode ser uma quantidade, uma propriedade ou uma
condição que o transdutor transforma num sinal elétrico.
2.3.1 Características dos Transdutores
Na escolha de um transdutor é necessário observar alguns aspectos que podem
ser de grande relevância no desenvolvimento de um projeto. Estes aspectos estão
descritos abaixo de forma um pouco mais detalhada.
• Faixa
Representa os níveis de amplitude do sinal de entrada, sinal o qual o transdutor
deve operar.
• Resolução
20
Pode ser definida como o menor incremento do sinal de entrada que pode ser
sensível e consequentemente medido pelo instrumento.
• Sensibilidade
O transdutor deve ser suficientemente sensível para permitir uma saída
razoavelmente detectável
• Linearidade
O objetivo de uma curva de resposta de um transdutor é que ela seja o mais
próxima de uma reta, configurando assim a linearidade do transdutor.
• Exatidão ou Erro
Todo instrumento apresenta uma exatidão que seria definida pela diferença
absoluta entre o valor real da medida e o valor que o instrumento indica
• Precisão ou Repetibilidade
É a capacidade do instrumento de se obter o mesmo valor várias vezes pelo
mesmo instrumento, sendo dado pelo padrão das medidas efetuadas de um mesmo
valor.
• Relação Sinal/Ruído
É definida pela relação entre a potência de um sinal que esta sendo indicado na
saída e a potência do sinal de ruído como sinal entrante.
• Estabilidade
Define-se estabilidade pela capacidade do instrumento em retornar a uma
situação permanente depois de receber um sinal qualquer.
• Resposta de Freqüência
É a faixa definida do espectro que determinado equipamento pode reproduzir.
2.4 Acelerômetro
21
Um acelerômetro é um transdutor que converte uma aceleração aplicada sobre
ele em uma grandeza elétrica. A grandeza utilizada para representação é "g", que é em
função da gravidade da Terra, ou seja, 1g é aproximadamente 9,8m/s2. Esta unidade
(g) oferece uma noção mais intuitiva da grandeza das acelerações.
Existem três tipos de acelerômetros:
Acelerômetro Mecânico;
Acelerômetro Eletromecânico;
Acelerômetro Piezoelétricos
No projeto foi utilizado o Eletromecânico
2.4.1 Acelerômetro Eletromecânico
Ele baseia-se em uma massa m que sofre uma força F devido a aceleração F =
m.a. O sistema e composto por um galvanômetro de ferro móvel com um pêndulo em
lugar de ponteiro. No pêndulo esta presa a massa m e próximo a extremidade há um
sensor capacitivo que monitora a posição x da massa. A Figura 10 demonstra o
princípio de funcionamento desse transdutor:
Figura 5 – Acelerometro eletromecânico Na pratica a massa é uma barra de silicone, e a mola são as ligações flexíveis
atadas às âncoras. Nestas células, o deslocamento da massa é proporcional à
aceleração à qual o sistema está submetido, conforme a figura4.
22
Figura 6 - Acelerômetro Eletromecânico
No projeto foi utilizado o acelerômetro ADXL203 da Analog Devices, o qual
possui as seguintes características:
• 2 eixos (x,y) • Range +- 1.7g • Sensibilidade 1000 mV/g • Saída Analógica • Max Band Width 2.5 Khz • Noise Density 110 ug/rtHz
Figura 7 – Diagrama em blocos do Acelerômetro
23
2.5 Conversor AD Os sinais obtidos por sensores ou transdutores são normalmente convertidos em
grandezas elétricas analógicas, isto quer dizer que são contínuos no tempo podendo
assumir valores dentro de uma faixa, conhecida como escala.
Os computadores trabalham de uma forma digital, isto é, seus dados são
armazenados de uma forma binária com apenas dois níveis bem distintos de estados.
Para que um sinal analógico seja trabalhado em um sistema computacional é
necessário um processo de conversão onde o sinal e amostrado e comparado com um
valor binário dentro de certa escala permitindo desta forma uma aproximação.
No projeto foi utilizado o ADC0808, o qual e um circuito integrado fabricado pela
National Semiconductors, que possui as seguintes características:
• - 8 entradas de sinal;
• - Seleção de entrada a ser convertida via endereços;
• - Definição de referencia Positiva e Negativa;
• - Sinais de comunicação com microcontroladores como: Output Enable, End of
Conversion e Start.
Figura 8 – Diagrama em blocos do Conversor A/D
24
2.6 Microcontrolador Um microcontrolador é um dispositivo utilizado para controlar e monitorar
funções durante um processo.
A partir do advento dos circuitos integrados TTL, pode-se delinear três gerações
no que diz respeito à implementação de controladores.
Na primeira geração estão os projetos envolvendo circuitos integrados TTL, na
sua maioria. O alto consumo de energia, a grande quantidade de chips envolvidos e a
dificuldade em se realizar reengenharia tornaram a segunda geração atraente aos
projetistas.
O advento dos microprocessadores tornou versátil o projeto de circuitos
destinados ao controle é a segunda geração de controladores. Boa parte das funções,
antes implementadas por hardware, passou a ser implementadas por software.
A terceira geração veio para integrar em um único chip boa parte dessa
estrutura. Microcontroladores integram as funções de um microprocessador, memória
de dados e de instruções e ainda, dependendo da complexidade, portas seriais e
paralelas bidirecionais, conversores A/D, timers, watchdog e outros.
2.6.1 Microcontrolador 8051
O microcontrolador 8051 pode incorporar memória de programa e dados
internamente com a possibilidade de expansão de até 64K bytes de programa e mais
64Kbytes de dados. Permite o acesso a portas internas e I/O, canal de comunicação
UART full duplex, interrupções com estrutura nesting com 5 fontes mascaráveis e dois
níveis de prioridade, timers/counters de 16 bits, oscilador interno, freqüência de clock
típica de 12MHz.
A família MSC-51 permite facilidades de software que permitem a execução de
complexas operações aritméticas e lógicas (multiplicação, divisão, permita e
deslocamento de bits, etc.). Esta família trabalha com bancos de registradores
nominais e também com bits endereçáveis na RAM. Na figura 9 pode-se observar a
pinagem do microcontrolador 8031.
25
Figura 9 – Pinagem do Microcontrolador
Normalmente o 8051 possui as seguintes características:
• CPU de 8-bits otimizada para aplicações de controle
• Processamento Boleando Amplo
• Espaço de endereçamento de Memória de Programa de 64K
• Espaço de endereçamento de Memória de Dados de 64K
• 4K bytes de Memória de Programa (ROM)
• 128 bytes de RAM de Dados
• 32 linhas de I/O programáveis
• Dois contadores/timers de 16-bits
• UART Full duplex
• Estrutura de interrupção com dois níveis de prioridade
• Oscilador de relógio
Para o desenvolvimento do projeto foi escolhido o Microcontrolador 8031 por
este atender de forma adequada os requisitos necessários para o desenvolvimento do
projeto. Uma das principais vantagens é o custo do CI e a facilidade de encontrá-lo no
mercado.
26
2.6.1.1 Pinagem do 8051 e suas funções
• Port P0: Porta de propósito geral se não utilizar memória externa de nenhuma
espécie. È uma porta de utilização como via multiplexada no tempo, entre dados
e endereços (só os endereços menos significativos) quando utilizamos memória
externa. No mesmo barramento, em determinado tempo, apresentam-se dados
e em outro tempo, endereços.
• Port P1: Porta de propósito geral como I/O. São oito vias de comunicação de
propósito geral.
• Port P2: Porta de propósito geral, se não utilizar nenhuma memória
RAM/ROM/EPROM externa.
• Port P3: Porta de propósito geral de I/O, isso se não for utilizado nenhum
periférico, interrupção ou memória RAM, externa ao chip. Essa porta é utilizável
como interface entre os periféricos internos do chip para fora do mesmo, além
de ter entradas programáveis, como interrupção e dois pinos que gerenciam
uma memória Ram externa (pinos de Read – RD e Write – WR).
• ALE (Address Latch Enable): Ligado a um latch, permite demultiplexar
externamente os dados e endereços no tempo, separando assim as
interrupções. Ele é automaticamente gerenciado pelo microprocessador.
• EA (External Acces): è um pino de comando externo, que determina se vai ser
utilizada memória ROM/EPROM interna do chip ou memória ROM/EPROM
externa ao chip.
• PSEN: Ele aciona a EPROM externa quando o microcontrolador vai fazer uma
busca de instrução na ROM, para executá-la. E controlado automaticamente
pelo microcontrolador.
• RST (Reset): Este pino inicializa a memória do programa. Para ocorrer o reset,
esse pino deve permanecer no nível alto por no mínimo dois ciclos de máquina.
• INT0/INT1: São pinos físicos de interrupção.
• T0/T1: Pinos de interrupção interna gerada pelo Timer/Counter, podendo ser
usado como contador de eventos externo ou temporizador interno.
• TXD/RXD: São pinos físicos usados para transmissão e recepção serial.
• VDD: Pino de alimentação Positiva (+5V)
• VSS: Pino de terra (0V)
27
2.6.1.2 Modos de operação
• Modo Mínimo: Nesse modo são utilizados somente recursos internos pela CPU.
Neste modo, estão disponíveis 4KB de ROM para memória de programa e 128
bytes de RAM para memória de dados. O modo mínimo possui a vantagem de
poder utilizar as quatro portas de 8bits cada para controle (I/O), além da
economia de espaço físico.
• Modo Expandido: Neste modo, a memória de programa (ROM), a memória de
dados (RAM) ou ambas podem ser expandidas para 64KB, com uso de CIs
externos. No entanto, apresenta a desvantagem de “perder” duas das quatro
portas para comunicação com as memórias externas. A figura 10 apresenta o
diagrama esquemático do modo expandido.
Figura 10 – Modo Expandido com RAM e ROM
28
2.6.1.3 Interface Serial no 8051
No 8051, a interface serial é do tipo Full-Duplex. Isto significa que o
microcontrolador pode receber e transmitir dados simultaneamente, sendo que para tal
existe um registro especial para este fim. Este registro chama-se SBUF (Serial Buffer) e
uma escrita no mesmo implica em automática transmissão do dado escrito, assim
como um dado que chegue ao pino de recepção, independente do controle do usuário
(desde que o canal serial esteja habilitado e corretamente ajustado).
Existem na realidade, dois registros com o mesmo nome SBUF. Sendo um para
recepção e outro para transmissão. O reconhecimento é feito pelo sistema através das
instruções que acessarão o mesmo.
2.6.1.4 Comunicação RS-232 para o 8051
Na implementação do projeto foi necessário efetuar as comunicações com o PC
e com o ROBO através do padrão RS-232 ao invés de níveis TTL presentes nos pinos
do chip.
A comunicação RS-232 nasceu da necessidade de criar um padrão para a
comunicação serial, através da definição de níveis de tensão e de impedância para a
transmissão de dados, permitindo que equipamentos incompatíveis entre si pudessem
ser interligados.
Para que a comunicação possa ser efetuada entre o PC e o microcontrolador
será necessária a transformação do padrão TTL (natural ao microcontrolador) para o
padrão RS-232 (padrão do PC).
29
2.6.1.5 Vantagens do 8051
- Popular: prontamente disponível e amplo suporte. Gama completa de produtos de
suporte está disponível gratuita e comercialmente.
- Rápido e eficaz: a arquitetura se correlaciona de perto com o problema sendo
solucionados (sistemas de controle). Instruções especializadas significam que menos
bytes precisam ser buscados e menos jumps condicionais são processados.
- Baixo custo: alto nível de integração do sistema em um único componente. Poucos
componentes são necessários para se criar um sistema que funcione.
- Ampla gama de produtos: uma única família de microcontroladores cobre as opções
que outros fornecedores só conseguem cobrir com um número razoável de diferentes e
incompatíveis famílias. Desse modo, o 8051 proporciona economia real em termos de
custo de ferramentas, treinamento e suporte para software.
- Compatibilidade: opcodes e código binário são os mesmos para todas as variações
do 8051, diferente de outras famílias de microcontroladores.
- Multi-Sourced: mais de 12 fabricantes, centenas de variedades.
- Aperfeiçoamentos constantes: melhorias na manufatura aumentam a velocidade e
potência anualmente. Há ainda versões de 16bits vindo de diversos fabricantes.
30
3. ESPECIFICAÇÃO TÉCNICA Neste capítulo serão apresentados os itens que descreverão o projeto de um
modo amplo, sem entrar nos aspectos detalhados da implementação. A especificação
tem por objetivo, parametrizar o projeto de modo que haja uma definição clara do que
será desenvolvido. As partes componentes serão divididas basicamente em seis sub-
partes: representação de hardware, representação de software, infra-estrutura
necessária, custos do projeto, módulos adicionais e por fim o cronograma As duas
primeiras descrevem o que será desenvolvido em hardware e software. A terceira parte
descreve a infra-estrutura necessária para o desenvolvimento do projeto, confecção e
testes do sistema. A quarta parte descreve o planejamento de custos do projeto. Tal
planejamento inclui o custo dos componentes, horas técnicas aplicadas no
desenvolvimento do hardware e software e dos testes A quinta parte descreve os
módulos adicionais que poderão vir a ser desenvolvidos. A última parte demonstra o
cronograma, que visa a definir datas e prazos para a execução do trabalho.
3.1 Especificação do hardware Esta representação tem como objetivo, ilustrar, de forma ampla, como será o
diagrama em blocos do circuito, ou hardware do projeto.
Figura 11 Diagrama em blocos do hardware
Joystick Acelerômetro e
Botões
Circuito
Analógico
Circuito Digital
Circuito de Alimentação
31
3.1.1 Especificação do Joystick O Joystick possui um acelerômetro bidirecional com duas saídas analógicas ( x e
y ) localizado no meio do manche para determinar as direções, e cinco botões (push -
buttons) para movimentação das junções. Ele é do tipo alavanca como mostra a figura
12.
Figura 12 - Modelo de Joystick a ser utilizado
A comunicação entre o joystick e o PC é feita utilizando a interface USB. Para
tanto, é utilizado um conversor Serial-USB. A ligação dos eixos e dos botões com o
sistema ocorre por meio de um conversor A/D. O conversor utilizado (ADC0808)
disponibiliza oito canais para conversão, que são ocupados, respectivamente:
- Canal 0: Eixo x principal;
- Canal 1: Eixo y principal;
- Canal 2: Botão 1
- Canal 3: Botão 2
- Canal 4: Botão 3
32
- Canal 5: Botão 4
- Canal 6: Botão 5
- Canal 7: Botão 6
- Canal 8: Disponível – Não utilizado
Cada canal é convertido para o formato digital individualmente e seu valor é
avaliado conforme o firmware do microcontrolador 8031. Os botões são ligados
diretamente no microcontrolador, pois só fornecem dois níveis de tensão 5V ou 0V.
Com relação aos movimentos possíveis para o robô, o joystick foi configurado da
seguinte maneira:
Figura13 – Botões do Joystick
• Botão 1: abre ou fecha a garra;
• Botão 2: enter, stop nos motores;
• Botão 3: rotaciona pulso para esquerda;
• Botão 4 :rotaciona pulso para direita;
• Botão 5 : seleciona o motor que ira movimentar para frente e traz;
• Eixo principal x: indica o sentido do movimento horizontal selecionado;
• Eixo principal y: indica o sentido do movimento vertical selecionado.
O joystick permite total flexibilidade e controle do braço robô. Ele permite uma
movimentação de 360º, porém, no projeto, ele ficou limitado a quatro direções
principais: frente, traz, direita e esquerda. No entanto, o sistema de calibração
(Software) pode ser adaptado para que o joystick responda a todas as direções
possíveis. O reconhecimento das direções e do acionamento dos botões ocorre em
tempo real, sendo imperceptível o tempo gasto no processamento pelo software.
5
33
3.1.2 Conversão A/D
Os cinco botões e os dois canais do acelerômetro são convertidos no conversor
A/D. São utilizadas sete entradas do ADC0808. A figura 14 ilustra o sistema baixo de
conversão, onde os sinais do joystick entram no módulo analógico onde é realizada a
filtragem básica em hardware do sinal, e posteriormente enviada para o circuito digital
(microcontrolador) que faz o processamento do sinal.
Figura 14 – Processo de conversão do sinal
3.1.3 Funções do Hardware O hardware é totalmente autônomo, ou seja, não há nenhuma função a ser
configurada no mesmo. Toda a configuração do sistema é feita através do software no
PC. A única função do hardware é aquisicionar os dados provenientes do joystick e
envia-los ao PC.
3.1.4 Sinal do acelerometro e botões Para fazer a aquisição do sinal do acelerômetro, utiliza-se o principio de
inclinometro, onde o sinal capturado é dado pela inclinação do acelerômetro. Isso
ocorre para os dois canais do acelerômetro. Já os sinais provenientes dos botões são
analisados conforme o nível lógico que pode ser +VCC ou GND.
3.1.5 Componentes utilizados
• Acelerômetro ADXL 203; • Conversor analógico / digital ADC0808; • Microcontrolador 80C31; • Placa PCI; • Resistores, capacitores.
34
3.1.6 Diagrama em blocos com descrição
Figura 15 – Diagrama em blocos com descrição
Aquisição: A aquisição do sinal que determina a posição da alavanca é feita pelo
acelerômetro ADXL 203 da Analog Devices, que possui +.1.7g de range de medição.
Os botões fazem à aquisição dos níveis de tensão, GND ou +VCC.
Conversão Analógico / Digital: A conversão analógico / digital é feita pelo circuito
integrado ADC0808 [National, 1997] que possui 8 bits de resolução e 8 entradas
analógicas, mas são usadas apenas 7 entradas, endereçadas pelo microcontrolador de
forma a fazer a aquisição dos sinais para o processamento.
Processamento e comunicação: O processamento e comunicação do sistema com o
computador, são feitos pelo microcontrolador 80C31 [Intel, 1995] que possui a
arquitetura 8051, não possui memória de programa interna e a memória de dados é
restrita aos registradores internos. Portanto é utilizado um kit, composto por
microcontrolador 8031, memória EPROM e memória Ram. O microcontrolador faz a
aquisição dos sete sinais referentes à medição dos acelerômetros e dos botões.
A comunicação com o computador é feita através da porta serial. Na saída da
porta serial é ligada um conversor Serial-USB.
35
3.1.7 Ambiente de desenvolvimento O ambiente utilizado para a programação do microcontrolador 8031, em
linguagem C, é o Keil.
Para o desenho do diagrama esquemático do circuito é utilizado o Software
Orcad Capture.
3.2 Especificação de Software Neste capítulo são apresentados os fluxogramas, estimativas de custo, bem
como um Cronograma detalhado do projeto.
3.2.1 Linguagem e ferramenta de desenvolvimento A linguagem de programação escolhida para o desenvolvimento do software é a
linguagem C++, utilizando o Borland C++ Builder 6 como ambiente de programação e
criação da interface gráfica para interação do usuário com o sistema.
3.2.2 Fluxograma com descrição As funções que o software possui, inicialmente, são:
• Calibração do Joystick;
• Visualização do status dos botões
• Valores lidos do acelerômetro
• Comunicação com o sistema
• Comunicação com o Robô
Figura 16 – Fluxograma básico do software
36
3.3 Estimativa de Investimento A maioria dos recursos necessários para o desenvolvimento do projeto já estavam
disponíveis no Campus do UNICENP, principalmente, os softwares necessários. Todos os
componentes de hardware tiveram que ser adquiridos, a maioria foi comprada no Brasil,
com exceção do acelerômetro que teve que ser importado dos Estados Unidos. Os
recursos utilizados foram:
• Microcomputador PC;
• Ambiente de desenvolvimento para linguagem C++ (Borland C++ Builder 6);
• Ambiente de desenvolvimento para programação em C do Microcontrolador
8051(Keil);
• Orcad 9.2;
• Componentes eletrônicos;
• Placa de circuito impresso;
• Osciloscópio;
• Multímetro;
• Protoboard;
• Fonte;
• Alicates, Fios;
• Interface de comunicação USB.
3.3.1 Custos 3.3.1.1 Equipamentos
Nos custos não consta o valor do robô, porque o projeto se limita somente à
construção do joystick e da interface. O robô é fabricado pela ED-Laboratories e seu
custo atual é aproximadamente U$ 20.000. O custo em material para o
desenvolvimento do sistema foi relativamente baixo, muito abaixo do valor estimado no
inicio do projeto. Esta redução foi possível, graças a otimizações de hardware que
ocorreram durante a fase de desenvolvimento. Outro fator que ajudou a diminuir o
custo foi que grande parte dos recursos necessários estavam disponíveis no campus
do UNICENP.
37
3.3.1.2 Descrição dos itens utilizados no projeto:
- Kit 8031 R$ 40,00
- Joystick Analógico R$25,00
- Kit Conversão A/D R$ 30.00
- Placa Padrão, Cabos e Conectores R$ 50,00
- Acelerômetro R$ 30,00
- Caixa de PVC R$ 10,00
Custo total de equipamentos do projeto: R$ 185,00
3.3.1.3 Mão de Obra
O custo da mão de obra no projeto será calculado sobre a quantidade de horas
trabalhadas ao valor de R$ 20,00 a hora. No desenvolvimento do projeto foram gastas
em torno de 300Hs. Com isso estima-se que o custo total de mão de obra seja de R$
6.000,00 (Seis mil reais).
3.3.1.4 Custos de Equipamentos e Softwares
• Acelerômetro – ADXL 203 Sample (US12,00)
• Componentes de Hardware Nacionais (R$185,00)
• Plataforma de desenvolvimento C++ Builder 6.0 (R$ 2600,00)
• Plataforma de desenvolvimento OrCAD 9.2 (U$ 12000,00)
• Equipamentos de laboratório (Osciloscópio, Fonte, Multímetro...) (U$ 25000)
• Computador (R$2500,00)
• Recursos de Mão de Obra (R$6000,00)
• Custo estimado para a produção de um protótipo (R$ 500,00)
3.3.1.5 Custo Total
O Custo total do projeto, somando equipamentos e mão de obra é de
R$6.185,00. Esse valor não leva em consideração os equipamentos utilizados no
UNICENP.
38
3.4 Módulos Adicionais
Como módulos adicionais para esse projeto, existem algumas idéias que podem
ser desenvolvidas sem grandes dificuldades, as quais só não foram realizadas devido à
restrição de tempo para entrega do projeto.
• Comunicação direta da interface do joystick com o MK4-Controler;
• Opção de gravação de movimentos, desenvolvida em hardware;
• Calibração do joystick efetuada diretamente no hardware.
• Implementação de um Modulo LCD na interface, para mostrar o status do
sistema e fazer a interação do usuário com o sistema.
39
3.5 Cronograma
Figura 17 - Cronograma do Projeto
40
4. PROJETO
Neste capítulo , são mostradas algumas características do projeto, bem como uma
introdução ao seu tema, a motivação para que este seja realizado, trazendo consigo seus
benefícios sociais, as metas que deverão ser alcançadas com o desenvolvimento do
mesmo.
4.1 Descrição do Tema
O Joystick para controle do Braço Mecânico ED-7220, tem como principal
objetivo, um sistema completo de hardware e software para o controle do Braço
Mecânico, provendo todos os movimentos possíveis para o mesmo. Nesse projeto foi
desenvolvido o joystick, o Hardware para controle do mesmo e o software de controle
e calibração do joystick.
4.2 Motivação do Desenvolvimento
O Braço Mecânico ED-7220, não possui um joystick para seu controle, ele só
possui o hardware Teach Pendant o qual possui um controle complicado, e
disfuncional. Em razão disso, o joystick servirá para suprir essa necessidade.
4.3 Metas a serem alcançadas
O Joystick deve fornecer todos os movimentos possíveis do robô. O sistema
deve funcionar em tempo real, e não podem ocorrer falhas de comunicação entre os
módulos.
41
4.4 Visão Geral
O projeto possui três partes principais e essas subdivididas em módulos
subseqüentes. As três partes são:
• Software – Sistema que roda no PC, responsável pela calibração do joystick e
envio de comandos para o MK4-Controler.
• Hardware – Joystick desenvolvido utilizando push-buttons e acelerômetros.
Interface que utiliza o microcontrolador 8051 e o conversor AD0808.
• Firmware - Responsável por fazer a aquisição e a media dos sinais do joystick.
4.5 Diagrama em Blocos do Sistema
Figura 18 – Diagrama em Blocos do Projeto
42
4.6 PROJETO DE HARDWARE O hardware foi dividido em três módulos principais. Essa divisão foi necessária
para que cada módulo pudesse ser desenvolvido e testado separadamente, antes da
junção de todos os módulos.
A estrutura dos módulos ficou definida da seguinte forma:
Figura19 – Módulos do Hardware
O microcontrolador lê os valores provenientes do joystick. Os valores são lidos
do conversor A/D. Depois ele faz o pré-processamento dos dados e envia para o PC
através da interface USB. O PC por sua vez processa as informações e envia os
comandos para o MK4-Controller para a movimentação do robô pela interface serial
RS-232.
4.6.1 Descrição Detalhada O conversor A/D faz a conversão dos sinais provenientes do acelerômetro e dos
botões localizados no Joystick. Após o dado ter sido convertido ele é enviado para o
Port 1 do microcontrolador para que o mesmo efetue o processamento dos sinais. São
utilizadas sete entradas do conversor A/D. As sete entradas são lidas alternadamente
para determinar a posição onde o joystick se encontra. O firmware faz o
processamento dos movimentos e envia para o computador fazer a conversão de bits e
posteriormente acionar os servo-motores do Robô. Todo o processo ocorre em real-
time.
43
4.6.2 Tabela de Sinais
Modulo IN OUT KIT8031 P1 P1, RS-232 Conversor AD IN,A0,A1,A2 D0..D7 MK4-Controler RS-232 Motor Signals PC USB RS-232
Tabela 2 - Tabela de Sinais
4.6.3 Tipo de Barramento
Origem/Destino Controle Endereços Dados Alimentação KIT8031/Conversor AD OE A0,A1,A2 D0 .. D7 5V KIT8031/PC N/A N/A RX, TX 5V PC/MK4-Controler N/A N/A RX, TX 5V MK4-Controler/ Braço Robô N/A N/A D0, D9 5V
Tabela 3 - Tipo de barramento
4.6.4 Lógica de Operação do Sinal
Origem/Destino Lógica de Operação KIT8031/Conversor AD 1 e 0 KIT8031/PC 1 e 0 PC/MK4-Controler 1 e 0 MK4-Controler/ Braço Robô 1 e 0
Tabela 4 – Lógica de Operação
4.6.5 Sinais Analógicos 4.6.6 Sinais O sistema só possui uma fonte de sinal analógico, que são os 2 canais do
acelerômetro localizado no Joystick. Esses dois sinais indicam a posição X e Y. Esses
canais irão passar pelo modulo conversor A/D para que sejam digitalizados e
posteriormente processados no microcontrolador.
4.6.7 Alimentação Referencia A Alimentação de todos os módulos é de 5V.
44
4.6.8 Amplitude ou faixa A amplitude do sinal do acelerometro fica em torno de 2.2V a 3V, variando
conforme a posição. A amplitude dos demais modulo e de 0 a 5V. A interface serial
trabalha de -15V a +15V.
4.6.9 Descrição da função do Sinal É definido um valor limiar para determinar a direção. Se o valor for maior do que
o limiar ele é considerado alto, se for menor é considerado baixo.
4.6.10 Lista de Materiais.
Nesse capitulo serão listados todos os componentes utilizado no projeto, bem
como seu valor unitário.
4.6.10.1 Modulo Conversor A/D Quantidade Componente 1 74LS393 1 74LS04 1 ADC0808 1 Cristal 2MHz 2 Resistor 1K 1 Barra Pinos para 29 conexões 1 Soquete 28 Pinos 2 Soquete 14 pinos 1 Conector Fonte – plug fêmea (Jack)
Tabela 5 – Componentes do Modulo Conversor A/D
4.6.10.2 Modulo KIT 8031 Quantidade Componente 1 Resistor 10K ohms 1 Resistor 220 ohms 4 Resistor 4.7K ohms 1 Resistor 100 ohms 1 Capacitor 10uF 1 Capacitor 22pF 2 Capacitor 33pF 1 Capacitor 470uF 1 Capacitor 100uF 4 Capacitor 100nF 1 1N4001 1 BC557B 1 BC547B 1 LED Vermelho 3 mm
45
1 Cristal 11,059MHz 1 LM7805 1 80C31 1 Soquete 40 pinos torneado 1 74LS373 1 Soquete 20 pinos torneado 1 27C256 2 Soquete 28 pinos torneado 1 62256 1 Chave ON/OFF H-H 90º mini 1 Conector Fonte – plug fêmea 1 Plug DB9 fêmea 90º 1 Push Boton (reset) NA ou NF 1 Barra de conectores para 40 conexões
Tabela 6 – Componente do Modulo KIT-8031
46
4.3 PROJETO DE SOFTWARE O software que faz a calibração do Joystick foi desenvolvido na linguagem C++
no ambiente de desenvolvimento Borland C++ Builder 6.0. O software lê o valor da
interface USB e converte em um dado valido que determina o movimento do robô. Os
comandos são enviados através da interface serial para o MK4-Controler. O Software
também lê as informações do robô, como esforço, velocidade e posição dos motores.
4.3.1 Diagramas de casos de uso
ud
Responsavel por iniciar o processo deaquisição e analise dos dados
Caso de uso responsavel por enviardados pela serial
Caso de uso responsavel pordeterminal em qual direção o joystick
se encontra
Caso de uso responsavel por analisaros dados lidos da interface serial
Caso de uso responsavel por fazeraquisição dos dados da porta serial
Usuario
Aquisicionar Dados
Porta SerialAnalisa
Determina Direções Env ia Dados
«use»
«use»
«use»
Figura 20 - Diagramas de casos de uso
47
4.3.2 Diagrama de classes
Figura 21 - Diagrama de classes
48
4.3.5 Interface A interface define toda e qualquer interação do usuário com o sistema. A seguir
são apresentadas as principais interfaces do software projetado.
A tela inicial do software é mostrada na figura 23. Essa e também a tela principal
do sistema, onde são exibidas diversas informações.
Figura 23 – Tela inicial do sistema
No menu esquerdo, no item sistema é mostrada a comunicação com o
Hardware. No item Robô, é mostrado a comunicação que o PC esta fazendo com o
MK4-Controler. O item status do sistema mostra qual botão está pressionado e no
campo direção é exibida a direção onde a alavanca se encontra. O botão Iniciar, aciona
o processo de analise e determinação dos movimentos, desde que o joystick esteja
calibrado. Caso o mesmo não esteja calibrado, será solicitado que a mesma seja feita.
Conforme a figura 24.
49
Figura 24 – Mensagem Informando que o Joystick esta calibrado
No item console é possível fazer a interação direta com o MK4-Controller. É
possível interagir diretamente com o firmware que faz o controle dos motores, através
do protocolo próprio do hardware.
Figura 25 – Tela de configuração do sistema
Nessa tela, e feita à configuração de portas do sistema. Deve-se informar ao
software em qual porta está conectado o joystick e em qual porta está conectado o
MK4-Controler.
50
4.4 PROJETO DE FIRMWARE
O firmware que roda no microcontrolador, fica em loop lendo constantemente o
valor do Port1 e processando as informações. São utilizados três pinos do Port 3 do
microcontrolador 8031 para fazer o endereçamento do conversor A/D. Esses pinos são
o P3.2, P3.3 E P3.4 respectivamente. O Firmware endereça o conversor A/D, lê o valor
do Port1 e armazena em uma variável. Isso é feito para os cinco botões.
Posteriormente, é lido o valor das duas saídas do acelerômetro. Porém, para garantir
que não seja capturado nenhum ruído, é feita uma amostra de 100 valores e
posteriormente é calculada a média desses 100 valores. Isso ocorre para os dois
canais (x e y). Após isso as duas médias são gravadas em variáveis temporárias. No
final do processo o valor dos cinco botões e das duas médias é enviado através da
interface serial para o PC.
4.4.1 Diagrama de Estados
Figura 26 – Diagrama de Estados do Firmware
LLÊÊ VVAALLOORREESS
IINNIICCIIOO
EENNVVIIAA PPAARRAA OO PPCC
51
4.4.2 Fluxograma do Firmware
Figura 27 – Fluxograma do Firmware
52
4.4.3 COMUNICAÇÃO SERIAL O Braço Robô trabalha com transmissão de 7 bits de dados. O 8031 trabalha
com 8 bits de dados. Em razão disso não foi possível fazer a comunicação direta entre
o microcontrolador e o MK4-Controler. Na transmissão para o robô, o MK-4 Controler
utiliza um Baud Rate de 9600 bauds, 1 bit de start, 7 bits de dados, paridade ímpar e 2
bits de stop, totalizando 11 bits.
start data data data data data data data data stop stop
Figura 28 – Pacote de transmissão serial 1
53
5. DESENVOLVIMENTO
Nesta etapa, serão discutidos todos os aspectos referentes ao desenvolvimento
do que foi especificado na fase de projeto. A implementação do projeto ocorreu de
maneira modular, onde, em uma primeira instância o modulo de hardware foi concluído
e posteriormente, o módulo de software.
5.1 Desenvolvimento do módulo de Hardware A implementação do Hardware pode ser sub-dividida em 3 partes, sendo elas:
• Aquisição de dados do Acelerômetro e dos botões; • Processamento do sinal; • Envio dos dados para o PC.
5.1.1 Aquisição de dados do acelerômetro
O acelerômetro usado, como mencionado anteriormente, foi o ADXL-203 da
Analog Devices. Esse acelerômetro foi posicionado no interior do manche do joystick,
em uma posição na qual pudessem ser capturados os movimentos em um ângulo
conveniente para o funcionamento do sistema. A figura 29 mostra o acelerômetro
posicionado no interior do Joystick.
Figura 29 – Local onde o acelerometro esta posicionado
ACELERÔMETRO
54
Os botões enviam para o conversor A/D somente dois níveis: Alto (+5V) e Baixo
(GND). São cinco botões ligados ao conversor A/D, como mostra a figura 30:
Figura 30 – Acelerômetros e Botões ligados no Conversor A/D
Nas duas saídas analógicas do ADXL, foram ligados em paralelo um capacitor
de 1uf para o terra. Isso foi necessário devido a ruídos que estavam ocorrendo na
saída, fazendo com que o sinal ficasse distorcido. Com a adição do capacitor na saída
do acelerômetro, o sinal ficou com uma resposta muito próxima do ideal. Foram
utilizadas sete entradas do conversor A/D. A Entrada oito ficou disponível para um
futuro botão de comando que possa vir a ser implementado. Para efetuar o
endereçamento do conversor A/D foram utilizados os pinos P3.2, P3,4 e P3,5 do
microcontrolador 8031, como mostra a figura 31.
Para fazer a conexão do microcontrolador com o conversor A/D e os sinais do
acelerômetro, foi desenvolvida uma placa padrão, que tem como objetivo fazer a
conexão entre os módulos.
55
Figura 31 – Pinos utilizados para fazer o endereçamento do Conversor
5.1.2 Processamento do Sinal
A saída do conversor A/D é ligada diretamente ao Port1 do microcontrolador
8031, como mostra a figura 32. O barramento é de 8 bits, e os dados são enviados
paralelamente. Como o clock utilizado no microcontrolador foi de 12Mhz, a velocidade
do processamento ficou extremamente rápida.
8031
2930
40
31
1918
9
3938373635343332
12345678
2122232425262728
1011121314151617
PSENALE
VCC
EA
X1X2
RST
P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7
P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7
P2.0/A8P2.1/A9
P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15
P3.0/RXDP3.1/TXD
P3.2/INT0P3.3/INT1
P3.4/T0P3.5/T1
P3.6/WRP3.7/RD
ADC0808
10
9
7
171415818192021
6
22
11
1216
262728
12345
252423
CLK
OE
EOC
D0D1D2D3D4D5D6D7
START
ALE
VCC
REF+REF-
IN0IN1IN2IN3IN4IN5IN6IN7
A0A1A2
Figura 32 – Ligação do conversor A/D e do 8031
56
5.1.3 Envio dos dados para o PC
A comunicação entre o KIT 8031 e o PC, ocorre através da interface USB.
Inicialmente no projeto tentou-se utilizar o CI TUSB3410, porém devido a vários
problemas encontrados, optou-se por utilizar um conversor comercial da Clone. O
conversor SERIAL-USB da Clone, mostrou-se muito mais estável do que o TUSB 3410.
O microcontrolador roda o firmware, que faz a varredura do status dos botões e
a posição do acelerometro. O status dos cinco botões e os dois canais do acelerômetro
são enviados para a porta USB do PC.
Foi desenvolvido um protocolo de baixo nível para o envio de dados pela porta
serial. Isso se mostrou necessário para garantir que os dados lidos pelo software
fossem válidos. O protocolo foi definido da seguinte maneira:
@ B 1 B 2 B 3 B 4 B 5 @ # Ax # # Ay #
Figura 33 – Protocolo de comunicação
O protocolo se inicia, enviando um caractere “@” como sento o start bit. Em
seguida, são enviados os cinco valores dos botões seguidos por um “@” para
determinar o fim dos botões. Após é enviado um caractere “#” e em seguida o primeiro
canal lido do acelerômetro” o mesmo ocorre para o segundo canal do acelerômetro.
Se o botão estiver pressionado o valor do botão é 0, caso não esteja
pressionado o valor é 1. O firmware converte o sinal DC dos canais do acelerômetro
em um valor decimal que varia de 0 a 255.
57
5.2 Desenvolvimento do módulo de Software
A implementação do software foi divida em etapas para que os módulos
pudessem ser testados independentemente. Os módulos do software ficaram divididos
da seguinte forma:
• Leitura dos valores da porta USB
• Calibração do joystick
• Determinação dos movimentos
• Envio de comandos para o braço-robo
5.2.1 Leitura dos valores da USB O software no PC faz a leitura do pacote enviado pelo firmware, para poder
determinar as direções e o status dos botões. Ele lê cada caracter individualmente e
no final tem-se uma string com o status dos cinco botões mais o valor do acelerômetro.
A string fica composta da seguinte forma:
B1,B2,B3,B4,B5,Ax,Ay
Onde: Bn correspondem aos botões e An, correspondem as saídas x e y do
acelerômetro.
5.2.1 Calibração do Joystick Antes de o software enviar comandos para o robô, obrigatoriamente deve ser
feita a calibração do Joystick. Isso é necessário, devido à resposta do acelerômetro
variar bastante em razão da gravidade no ambiente. Não e possível enviar comandos
para o robô sem que o sistema esteja calibrado.
O processo de calibração funciona da seguinte forma. O sistema coleta 100
amostras em cada posição. Esses valores ficam armazenados em um vetor temporário.
Esse vetor é passado para um método que faz a analise do vetor em busca do maior e
do menor valor. O maior e menor valor encontrado é passado para as variáveis que
determinam o range do acelerometro naquela posição. Isso ocorre para os dois canais
do acelerometro e para as quatro direções: frente ,traz, direita e esquerda.
58
5.2.2 Determinação dos Movimentos
Após o sistema já estar calibrado, a rotina que faz a leitura da porta USB é
inicializada, e ela passa a string lida para o método que reconhece os movimentos.
Esse método pega os dois valores do acelerômetro e faz as comparações para ver em
qual range ele se enquadra.
5.2.3 Envio de comandos para o braço-robo
Nessa etapa, o reconhecimento já foi feito. Sendo assim o sistema envia pela
interface serial os comandos para o robô. Se o joystick estiver posicionado para frente,
o sistema chama o comando EnviaFraseRobo(“Frente”). Isso ocorre para as demais
posições, onde só se altera o parâmetro passado para o método EnviaFraseRobo().
59
6 RESULTADOS Os testes foram realizados em três etapas. Na primeira etapa foi testado o joystick
separadamente. Isso foi necessário para determinar o range de atuação do acelerômetro.
Após isso, foi feito à conexão do joystick ao modulo de hardware, o qual fazia o
processamento dos sinais provenientes do joystick e enviava para o PC. Por último o
software que roda no PC, faz o processamento e interpretação dos sinais provenientes do
modulo de hardware e os converte e um comando válido para o acionamento do braço
robô.
O sistema mostrou-se bastante estável. Todos os comandos básicos são
reconhecidos pelo sistema. A resposta do software ficou dentro dos padrões esperados
e a sensibilidade do joystick atendeu todas as expectativas.
Para validar o sistema, foi desenvolvida uma bateria de testes nas quais todas
as direções do joystick foram testadas, e todas enviaram o comando corretamente para
o braço-robô.
Foi desenvolvido uma caixa para acomodar a placa com o microcontrolador, o
conversor A/D e os demais componentes do hardware como mostra a figura 34.
Figura 34 – Caixa desenvolvida para acomodar os módulos de hardware
60
Na figura 35, tem-se uma visão da caixa aberta, acomodando os módulos de
hardware. Já a figura 36, mostra o joystick desenvolvido no projeto. Graças à utilização de
placas padrões, o sistema ficou relativamente compacto.
Figura 35 – Vista Interna da caixa
Figura 36 – Joystick desenvolvido no projeto
61
7 CONCLUSÃO O sistema demonstrou ser eficaz no reconhecimento das direções e envio dos
comandos para o braço-robô. O uso de um acelerômetro, como sendo o sensor que
fornece as direções, tornou o projeto mais flexível, onde o joystick não precisa
necessariamente estar apoiado a uma base fixa para que o sistema funcione.
No projeto inicial, previa-se uma utilização de mais componentes, e uma maior
complexidade no desenvolvimento do projeto. Entretanto, com o desenvolver do
projeto, foram feitas otimizações no hardware e no software para torná-los menos
complexos.
Melhorias ainda podem ser implementadas nesse projeto, como o
desenvolvimento de um módulo embarcado para fazer todo o processamento e envio
de comandos para o robô, sem a necessidade de se utilizar o computador para fazer a
conversão dos dados e gerenciamento da comunicação. Mais direções podem ser
reconhecidas e o sistema pode vir a ter uma resposta ainda mais rápida, com a
utilização de um microcontrolador com mais capacidade de processamento.
62
8. REFERÊNCIAS BIBLIOGRÁFICAS [1] ED Laboratory. Robot Trainer with ED-MK4: command set manual. ED-7220C. [2] ED Laboratory. Robot Trainer with ED-MK4: instruction manual. ED-7220C. [3] Schultz, T.S , C and the 8051: hardware, modular programming and multitasking”, vol. I, 2ªEedição, Prentice Hall, 1998. [4]. Huang, H, Using the MCS-51 Microcontroller, Oxford, 2000. [5] Datasheet do acelerometro ADXL 203. www.analogdevices.com [6] Silva Jr., Vidal Pereira, Aplicações Práticas do Microcontrolador 8051: Teoria Geral Detalhada,São Paulo, Érica, 1998. [7] Apostila de Microcontroladores. Curso Engenharia da Computação. Unicenp. Disciplina: Microcontroladores, 2003, Autor: Edson Ferlin. [8] PORTA SERIAL [ONLINE] URL: www.rogercom.com, Página visualizada em 07/09/2005 – 20:00
63
ANEXO I – DIAGRAMA ESQUEMATICO KIT 8051
64
ANEXO II – DIAGRAMA ESQUEMATICO MODULO CONVERSOR A/D
65
ANEXO III – ARTIGO TÉCNICO ANEXO IV – MANUAL TÉCNICO ANEXO IV – MANUAL DO USUARIO ANEXO IV – DATASHEET DOS COMPONENTES