SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
1
1.INTRODUÇÃO
Nos últimos anos o mundo vem presenciando enormes avanços na microeletrônica, os
circuitos eletrônicos são cada vez mais rápidos e eficientes, por sua vez com uma
redução significativa de custos. Associados diretamente à microeletrônica, os sistemas
microprocessados digitais e a ciência da computação também se desenvolveu
rapidamente num círculo virtuoso com o desenvolvimento de componentes mais
poderosos com a capacidade de implementação de aplicações mais complexas, que por
sua vez exigem uma maior capacidade de tecnologia computacional.
Os microcontroladores estão presentes em quase tudo o que desenvolve a eletrônica,
diminuindo o tamanho, facilitando a manutenção e gerenciando tarefas internas de
equipamentos. Um microcontrolador pode efetuar várias funções que necessitam de um
grande numero de outros componentes. Assim, esta pesquisa propõe a construção de um
robô de inspeção controlado via sinal de radio frequência acoplado a uma câmera de
vídeo. O robô será composto por sensores de proximidade e servomotores. Além disto, o
robô também terá um sistema transmissor-receptor de rádio frequência para o controle à
distância, e uma câmera de vídeo que irá gerar as imagens em tempo real e enviá-la a um
microcomputador. Tanto o movimento do robô quanto o sistema de transmissão-recepção
de dados serão realizados por um microcontrolador.
2 FUNDAMENTAÇÃO TEORICA E OBJETIVOS
2.1 Objetivos
 Participar das etapas de desenvolvimento do processo de um sensor, desde a sua
caracterização até a confecção final;
 Estudar e colocar em prática conhecimentos fundamentais na área de mecatrônica,
como, estudo de sensores e métodos de condicionamento de sinais;
 Fornecer uma fundamentação teórica de microcontroladores que possibilite ao
desenvolvedor projetar e programar sistemas em linguagem C;
 Utilizar materiais de baixo custo, para proporcionar acessibilidade à montagem do
projeto, assim tendo adequadas nas especificações do projeto;
FUNDAMENTOS TEORICOS
Microcontrolador
Podemos definir o microcontrolador como um "pequeno" componente eletrônico,
dotado de uma "inteligência" programável, utilizado no controle de processos lógicos. O
controle de processos deve ser entendido como
o controle de periféricos, tais como: led´s,
botões, display's de cristal líquido (LCD),
resistências, relês, sensores diversos (pressão,
temperatura, etc.) e muitos outros. São
chamados de controles lógicos pois a operação
do sistema baseia-se nas ações lógicas que
devem ser executadas, dependendo do estado
dos periféricos de entrada e/ou saída.
É o nome que a Microchip adotou para a sua
2
família de microcontroladores, sendo que a sigla significa Controlador Integrado de
Periféricos.
O PIC é um circuito integrado produzido pelo Microchip Technology Inc., que pertence
da categoria dos microcontroladores, ou seja, um componente integrado que em um único
dispositivo contem todos os circuitos necessários para realizar um completo sistema
digital programável.
Internamente dispõe de todos os dispositivos típicos de um sistema microprocessado,
ou seja:
Uma CPU (Central Processor Unit ou seja Unidade de Processamento Central) e sua
finalidade é interpretar as instruções de programa.
Uma memória PROM (Programmable Read Only Memory ou Memória Programavel
Somente para Leitura) na qual ira memorizar de maneira permanente as instruções do
programa.
Uma memória RAM (Random Access Memory ou Memória de Acesso Aleatório)
utilizada para memorizar as variáveis utilizadas pelo programa.
Uma serie de LINHAS de I/O para controlar dispositivos externos ou receber pulsos de
sensores, chaves, etc.
Uma serie de dispositivos auxiliares ao funcionamento, ou seja, gerador de clock, bus,
contador, etc.
A presença de todos estes dispositivos em um espaço extremamente pequeno, da ao
projetista ampla gama de trabalho e enorme vantagem em usar um sistema
microprocessado, onde em pouco tempo e com poucos componentes externos podemos
fazer o que seria oneroso fazer com circuitos tradicionais.
O PIC esta disponível em uma ampla gama de modelos para melhor adaptar-se as
exigências de projetos específicos, diferenciando-se pelo numero de linha de I/O e pelo
conteúdo do dispositivo. Inicia-se com modelo pequeno identificado pela sigla PIC12Cxx
dotado de 8 pinos, até chegar a modelos maiores com sigla PIC18Cxx dotados de 42
pinos.
Programação do PIC
Como o PIC é um
dispositivo programável, o
programa tem como
objetivo deixar instruções
para que o PIC possa
fazer atividades definidas
pelo programador. Um
programa é constituído por
um conjunto de instruções
em sequencia, onde cada
uma identificara
precisamente a função
básica que o PIC ira
executar. Um programa
escrito em linguagem
assembler ou em C pode
3
ser escrito em qualquer PC utilizando-se qualquer processador de texto que possa gerar
arquivos ASCII (Word, Notpad etc). Um arquivo de texto que contenha um programa em
assembler é denominado de source ou código assembler. Uma vez preparado o nosso
código assembler ou C(veremos mais adiante), iremos precisar de um programa para
traduzir as instruções mnemônicas e todas as outras formas convencionais com que
escrevemos o nosso código em uma serie de números (o opcode) reconhecível
diretamente pelo PIC. Este programa se chama compilador assembler ou assemblador, o
compilador usado neste curso será o PCWH. Na figura seguinte está esquematizado o
fluxograma de operações e arquivos que devera ser realizado para passar um código
assembler a um PIC a ser programado.
MpLab
O MpLab é um ambiente integrado de desenvolvimento (I.D.E.: Integrated Development
Environment). No mesmo ambiente o usuário pode executar todos os procedimentos
relativos ao desenvolvimento de um software para o PIC (edição, compilação, simulação,
gravação), tornando o trabalho do projetista mais produtivo. Este programa é totalmente
gratuito e pode ser pego no site www.microchip.com.
Edição
O MpLab possui um editor de texto para seus programas que possui diversas
ferramentas de auxílio como localizar, substituir, recortar, copiar e colar.
Compilação
Compilar significa traduzir um programa escrito em assembly (mneumônicos) para
linguagem de máquina (números). A compilação gera um arquivo com extensão .hex
(hexadecimal) a partir dos arquivos de código fonte (.asm) e de projeto (.pjt). É o conteúdo
do arquivo hexadecimal que é gravado na memória de programa do PIC.
Simulação
O MpLab possui ferramentas para simulação do programa no próprio computador,
possibilitando a execução passo a passo, visualização e edição do conteúdo dos
registradores, edição de estímulos (entradas), contagem de tempo de execução, etc.
Gravação
Para que o programa seja executado no microcontrolador, o arquivo hexadecimal deve
ser gravado no PIC. O MpLab oferece suporte aos gravadores fabricados pela Microchip.
Emulação
A Emulação é um recurso de desenvolvimento que possibilita testes em tempo real. O
MpLab oferece suporte ao hardware necessário para estar emulando um determinado
programa. Esta emulação é feita conectando-se (através do hardware mencionado) o
computador ao sistema projetado, no lugar do PIC.
PIC18F4550
A seguir são apresentados alguns das características do microcontrolador:
 Memória FLASH para armazenamento de programa: 32KBYTES;
 Memória SRAM para armazenamento de dados 2 KBYTES;
4
 Memória EEPROM de dados: 256 BYTES;
 Portas configuráveis como entrada e saída digitais: 35;
 Portas configuráveis como canais de entradas analógicas: 13;
 Módulo CCP(Capture/Compare/PWM);
 Porta paralela de 8-bits (SSP- STREAMING PARALLEL PORT);
 Temporizador de 8 e 16 bit: 4;
 Watchdog Timer;
 Frequência de operação de até 48MHZ;
 Múltiplas fontes de interrupção (20);
 Dois comparadores;
 Periféricos avançados de comunicação: Porta de comunicação serial, USB 2.0;
 Arquitetura Harvard, tecnologia RISC com um conjunto de 75 instruções;
 Pilha de 31 níveis;
5
Figura ao lado é
possível visualizar a
pinagem do
microcontrolador
PIC18F4550 com as
portas de entrada e
saída(RA, RB, RC,
RD E RE), que
podem ser
configuradas por meio
do programa, os
canais de entrada
analógicas (AN),
pinos de alimentação
(VDD e VSS), pinos
de entrada para
oscilador externo (OSC), porta de comunicação serial(RX e TX) e porta de comunição
USB (D+ e D-), entra outros. É possível ver também que vários pinos acumulam mais de
uma função (Datasheet PIC18F4550).
O PIC18F4550 possui até 35 pinos de I/O configuráveis que estão em cinco grupos
PORTAS. Desta forma, temos a PORT A, a PORT B, a PORT C, a PORT D e a PORT E.
A maioria desses pinos pode ser configurada como entrada ou saída (input/output), e
como já foi dito, alguns deles acumulam outras funções. Podemos ver mais detalhes
sobre cada pino na Tabela abaixo, que segue (ver datasheet do PIC18F4550 da 18 à 23):
6
7
8
9
10
Arquitetura Interna do PIC18F4550
No diagrama abaixo, podem ser visualizados as diversas partes que compõem o
microcontrolador. Observe a ULA (Unidade Lógica Aritmética) ligada ao registrador W (
Work-register). No canto superior esquerdo, abaixo da tabela de ponteiros, temos a
memória de programa (32 KBYTES), e saindo deste bloco um barramento de instruções
com 16-bits. No lado superior direito é possível visualizar a memória de dados (2
KBYTES), que possui um barramento de dados de 8-bits, conforme explicação na
definição da arquitetura Harvard.
Do lado direito podemos visualizar as portas com todos os seus pinos de entrada/saída
(I/O). Na parte inferior é possível visualizar os periféricos, tais como, a memória
EEPROM, os temporizadores (Timer0, Timer1, Timer2, Timer3), o comparador interno, o
módulo CCP, porta serial, porta USB, conversor A/D 10-bits.
Um pouco mais ao centro da figura, estão representados os osciladores internos, o
regulador de tensão da porta USB, Power-up Timer e Watchdog Timer. Na parte superior
central, temos o contador de linha de programa e a pilha.
11
Como vimos, por meio de diagrama de blocos, as principais partes de sistema
microprocessado padrão, é possível visualizar como estão distribuídas cada uma dessas
partes na arquitetura interna d PIC18F4550.
12
Organização da Memória do PIC18F4550
Segue abaixo detalhes da organização da memória do PIC18F4550:
Memória de Programa: memória interna flash de 32.768 Bytes (32 Kbytes).
 Armazena instruções, constantes e dados;
 Pode ser escrita/lida de acordo com o programador externo (off-board), in-circuit ou
durante a execução do programa através de ponteiros.
Memória RAM de dados: memória SRAM interna de 2048 Bytes (2 Kbytes) e nela
estão incluído os registradores de função especial (SFR).
 Armazena dados de forma temporária (Memória volátil) durante a execução do
programa;
 Pode ser escrita/lida em tempo de execução do através de diversas instruções;
Memória EEPROM de dados: memória não volátil de 256 Bytes.
 Armazena dado que devem ser conservados na ausência de tensão de alimentação;
 Pode ser escrita/lida em tempo de execução do programa através de registradores.
Observe que para serem lidos ou escritos os dados devem primeiro passar pela memória
SRAM.
Memória de Configuração: memória que contém bits de configuração (12 Bytes de
memória flash) e os registradores de identificação (2 Bytes de memória de apenas
leitura).
A memória de configuração se trata de um bloco de memória situado a partir da
posição 3000000H de memória de programa (muito além do espaço de memória do
programa para o usuário).
Nesta memória de configuração incluem:
 Bits de configuração: contido em 12 bytes de memória flash permitindo a
configuração de algumas opções do microcontrolador como:
 Opções de oscilador;
 Opções de reset;
 Opções de watchdog;
 Opções para depuração e programação do circuito;
 Opções da proteção contra escrita da memória do programa e de dados da memória
EEPROM.
Estes bits são configurados geralmente durante a programação do Microcontrolador,
mas podem ser lidos e modificados durante a execução do programa.
 Registradores de identificação: trata-se de registradores situados nos
endereços 3FFFFEH e 3FFFFFH que contém informações do modelo e
versão do dispositivo. Os registradores são apenas de leitura e não
podem ser alterados pelo usuário.
13
Arquitetura Harvard
O PIC18F4550 dispõe de barramentos diferentes para o acesso a memória de
programa e a memória de dados ( Arquitetura Harvard). O barramento da memória de
programa tem 21 linhas de endereçamento e 16/8 linhas de dados (16 linhas para
instruções e 8 linhas para dados ). O barramento da memória de dados tem 12 linhas de
endereçamento e 8 linhas para dados.
Isto permite acessar simultaneamente a memória de programa e a memória de dados.
Significa que ele pode executar uma instrução (o que geralmente exige a acesso aos
dados de memória), enquanto busca a próxima instrução da memória de programa para
ser executada em seguida (processo conhecido como pipeline).
Portanto, a execução completa de 1 instrução (Leitura da instrução + execução) se faz
em um ciclo de instrução (4 Tosc). Exceção: as instruções que modificam o conteúdo do
PC (Program Counter) requerem 2 ciclos de instruções, algumas conhecidas como
instruções de salto. Ex: Chamadas de função.
Memória de Programa (FLASH)
O microcontrolador
PIC18F4550 dispõe de uma
memória de programa de
32.768 Bytes (0000H-7FFFH).
As instruções ocupam 2 Bytes
(exceto de instruções em
assimbly: CALL, MOVFF,
GOTO e LSFR que ocupam
4). Assim, a memória de
programa pode armazenar até
16.384 instruções.
A operação de leitura da
memória na posição acima de
7FFFh resulta com ’0’
(equivalente à instrução
NOP). Podemos ainda citar
endereços especiais na
memória de programa. O
endereço do vetor reset é
0000H, o do vetor de interrupções de alta prioridade é 0008H e o do vetor de interrupções
de baixa prioridade é 0018H.
14
O valor Reset trata-se do primeiro endereço de memória de programa que será
executado quando o PIC começar a rodar (após a alimentação ou um reset). As rotinas de
interrupção serão armazenadas na área de programação, juntamente com todo o resto do
programa. No entanto, existe um endereço que é reservado para o início do tratamento de
todas as interrupções. A pilha é um local, totalmente separado da memória de
programação, em que serão armazenados os endereços de retorno quando utilizarmos
instruções de chamadas de rotinas (SOUZA, 2005).
Memória RAM de dados
A memória de dados é utilizada para guardar todas as variáveis e registradores
utilizados pelo programa. Essa memória armazena dados de 8 bits e é volátil, ou seja,
quando o PIC é desligado, ela é automaticamente perdida. Ela é dividida em 16 bancos
de memória, dos quais apenas 8 são utilizados pelo PIC18F4550, ele tem 2048 Bytes de
memória RAM (Volátil) divididos em 8 bancos de 256 Bytes. Dos quais, 160 Bytes são
reservados aos registradores de funções especiais (SFR) localizado na parte mais alta do
banco 15 da memória (endereço F60h até FFFh). Uma informação importante a ser
destacada é a diferença de um barramento de endereço do PIC poder endereçar uma
determinada quantidade de
memória (esse valor está
associado ao tamanho do
barramento de endereço) e ter o
que endereçar (tamanho real da
memória de dados). Por exemplo:
no PIC18F4550 é possível
endereçar até 4 Kbytes de
memória SRAM física disponível
no hardware.
A memória de dados contém os registradores especiais de função (SFRs) e os
registradores de propósito gerais (GPRs). Os SFRs e os GPRs são usados para
armazenamento temporário de dados e resultados de operações do programa do usuário.
Qualquer leitura em um local não implementado é lido como 0 (zero). Quando o modo
USB é habilitado, os bancos 4,5,6 e 7 são mapeados para bufferização da porta USB.
Quando o modo USB é desabilitado, os GPRs nesse banco são usados como qualquer
outro GPR no espaço da memória de dados.
Grandes áreas da memória de dados requerem um esquema de endereçamento
eficiente para fazer o rápido acesso para qualquer dos endereços possíveis. Idealmente,
isso significa que todos os endereços possíveis não precisam ser fornecidos para cada
operação de leitura ou escrita. Por isso que no PIC18F4550 existe o esquema de banco
de memória, conforme citado acima. O acesso a um Byte da memória SRAM (memória de
dados do PIC) é feito pelo Registrador de seleção do Banco (BSR). Esse SFR ocupa os 4
mais significativos bits da localização do endereço, sendo que a instrução ocupa o 8
menos significativos (4-bit + 8-bit de endereçamento). Existe também uma forma de
acesso rápido para as 96 posições da parte inferior do banco e os 160 Bytes mais altos
do banco 15, os SFRs.
15
O endereço FFFh equivale a
4095 bytes (capacidade máxima de
endereçamento com 12-bit).
Registradores de Funções
especiais no PIC18F4550
Os registradores de funções
especiais são usados pela CPU e
pelos módulos periféricos para
controle de operações desejadas do
dispositivo, servem para guardar a
configuração e o estado atual da
máquina. Os SFRs (o PIC18F4550
possui cerca de 140 SFRs) são os
registradores através dos quais
monitoramos/controlamos 0
funcionamento da CPU e das
unidades funcionais do
microcontrolador.
O conjunto de SFRs classifica-se
em:
- SFRs associados a
funcionalidades do
microcontrolador:
 CPU;
 INTERRUPÇÕES;
 RESET;
- SFRs relativos a operações das
funcionalidades dos periféricos:
 TIMERS;
 CONVERSORES A/D;
 EUSART;
 CCP;
 MSSP;
 PORTAS DE I/O;
Registrador STATUS
O registrador STATUS é utilizado para armazenamento de flags (sinalizadores)
matemáticos e de estado da CPU, esses flags sinalizam o status aritmético da ULA.
16
Ele possui 8 bits, sendo 5 importantes e descritos abaixo:
 N: esse bit indica quando um resultado é negativo. Bit usado para operação com
sinal:
o N=’0’: resultado da última operação foi positivo.
o N=’1’: resultado da última operação foi negativo;
 OV: bit de overflow. Bit utilizado para operações com sinal. Indica se houve
overflow do 7ºbit:
o OV=’0’: não houve overflow na operação aritmética;
o OV=’1’: houve overflow na operação aritmética;
 Z: bit de zero. Indica se o resultado de uma operação foi zero.
o Z=’0: o resultado de uma operação aritmética ou lógica foi diferente de ‘0’;
o Z=’1’: o resultado de uma operação aritmética ou lógica foi igual de ‘0’;
 DC: bit de transporte de bit entre o nibbles. Se houve transporte de bits de 4º
para o 5º.
o DC=’0’: não houve transporte dos 4º para o 5º.
o DC=’1’: houve transporte dos 4º para o 5º.
 C: bit de transporte ou estouro. Se a operação ultrapassou os 8 bits de dados.
o C=’0’: não houve transporte ou estouro;
o C=’1’: houve transporte ou estouro;
Para informações dos outros registradores, consulte o datasheet do PIC18F4550
disponível no site da Microchip.
Memória EEPROM de dados
A EEPROM é uma memória não volátil separada das memórias de dados RAM e de
programa. Que é usada para armazenar dados do programa. No Pic18F4550, a memória
EEPROM de dados possui 256 Bytes. Apenas quatro registradores são usados para
leitura e escrita de dados na EEPROM. São eles: EECON1, EECON2, , EEDATA,
EEADR.
Esta memória permite até 1.000.000 de ciclos de leitura e escrita. Pode-se ler/escrever
de forma individual cada uma das 256 posições de memória.
17
Servo Motor
O que é um Servo Motor
O Servo motor é uma máquina síncrona composta por uma parte fixa (o estator) e outro
móvel (o rotor). O estator é bobinado como no motor elétrico convencional, porém, apesar
de utilizar alimentação trifásica, não pode ser ligado diretamente à rede, pois utiliza uma
bobinagem especialmente confeccionada para proporcionar alta dinâmica ao sistema.
O rotor é composto por ímãs permanentes dispostos linearmente sobre o mesmo e
com um gerador de sinais chamado “RESOLVER” instalado para fornecer sinais de
velocidade e posição. Observe a figura abaixo.
Quais as características de um servo motor?
De um servo motor são exigidos, entre outros, dinâmica, controle de rotação, torque
constante e precisão de posicionamento.
As características mais desejadas nos servo motores são o torque constante em larga
faixa de rotação (até 4500 rpm), uma larga faixa de controle da rotação e variação (até
1:3000) e alta capacidade de sobrecarga (3 x Mo). Estas características são facilmente
obtidas através do modo de controle CFC especialmente desenvolvidas para a otimização
de servo motores nos servoconversores Atente para a figura.
18
O Torque nominal (CMO) de um motor é determinado pelas seguintes características
construtivas do motor.
O Torque máximo (Mmáx) é 3 x Mo do motor. Em função da potência do
servoconversor utilizado, o Torque máximo que se pode alcançar também poderá ser
menor.
Os servo motores devem possuir momento de inércia da massa do rotor, menor do que
em relação aos motores assíncronos trifásicos, devido às grandes solicitações de
dinâmica.
Um dos artifícios mais utilizados são os cortes transversais no rotor, através destes
cortes reduz se a massa de inércia do rotor. Na tabela 1 é dado um quadro comparativo
para um servo motor.
Um fator
essencial para o
uso do servo
motores nas
aplicações em
sejam
necessárias
velocidade e
sincronismo dos
eixos é a elevada
qualidade e a
energia dos ímãs
permanentes de
Terras-Raras
utilizados, que
permitem suportar
altas sobrecargas
sem o risco de
desmagnetização, graças também à tecnologia de encapsula mento utilizada para fixá-los
ao eixo do motor.
Como funciona um servo motor?
Os servo motores são máquinas
síncronas, compostas de seis polos no
estator, de alimentação trifásica, ímãs
permanentes Terras-Raras, dispostos
linearmente sobre a face do rotor e um
sensor analógico chamado resolver
para realimentação de posicionamento
e velocidade.
Sua alimentação, apesar de
trifásica, não pode ser efetuada
através da rede convencional, pois
19
possui um bobinamento totalmente especial, confeccionado para proporcionar uma alta
dinâmica ao motor através de um fluxo eletromagnético totalmente diferente do
proporcionado pela rede. Este fluxo eletromagnético só pode ser fornecido pelo
servoconversor através de um modelamento matemático que leva em consideração todas
as características do servo motor, esta é a razão de apenas ser possível a utilização de
servo motores e servoconversores de mesma marca. Só assim é possível fornecer o fluxo
mais apropriado para o servo motor ter a melhor dinâmica.
Outro importante ponto é a sequencia de fase adotada: em
alguns servo motores, a sequencia SERVOMOTOR -
SERVOCONVERSOR deve ser observada com atenção, pois
a sua inversão causa falha no servoconversor de Monitoração de rotação. Veja a figura 5.
Devido a estarmos trabalhando
em malha fechada, quando da
inversão o servoconversor
detecta a incompatibilidade entre
os sinais do campo girante do
servo motor com os sinais
gerados pelo resolver.
Desta forma, o servoconversor
entende que o campo girante do
servo motor está em um sentido e
o resolver no sentido oposto,
portanto, a sequência U/V/W do
servo motor deve ser a mesma
sequencia U/V/W do
servoconversor.
Atente-se também para a
utilização de servo motores e
servoconversores de mesmo
fabricante, pois no modo
operacional SERVO, específico
para servo motores síncronos, os
dados dos servo motores
necessários para este modo
operacional (SERVO) estão
memorizados nos
servoconversores, e só assim é
possível obter a melhor
performance através do
modelamento matemático do
servo motor.
67,3
60
220

f
V
RED
20
O que é o Resolver?
O resolver é um sistema de realimentação analógico composto por um estator e um
rotor, mas seu funcionamento é oposto ao do motor, ou seja, funciona como um gerador.
Seu rotor gira através da ação do eixo do rotor do servo motor e faz com que a ação do
campo eletromagnético do rotor exerça influência direta sobre o bobinamento do estator
do resolver, o qual se encontra subdividido em dois estatores, defasados 90° graus entre
si, gerando sinais senoidais que funcionam como realimentação de posição e velocidade
para o servoconversor. Observe as figuras.
Outro ponto a
se ressaltar é o
fato do
alinhamento do
resolver. Por se
tratar de um
sensor de alta
resolução e
precisão, o seu
alinhamento é algo
fundamental para
seu perfeito
funcionamento,
portanto, é
aconselhável não
mexer em seu
sistema de fixação
devido à sua
complexidade de
montagem. Na
figura , o
alinhamento.
Quando comparado a outros sistemas de realimentação disponível no mercado
(encoder incremental e encoder absoluto), o resolver tem suas características
ressaltadas, principalmente quanto à sua robustez e insensibilidade às vibrações e altas
temperaturas. Observe a tabela. Na figura, o encoder incremental.
O resolver é um gerador de sinais dos mais resistentes, tanto em sua mecânica, quanto
em sua estrutura elétrica. Normalmente os defeitos mais comuns são na parte de ligação:
21
1. Inversão dos canais de sinal;
2. Cabo de sinal inadequado (impedância
muito alta);
3. Deslocamento do ponto zero do resolver,
este acontece quando pessoal não
habilitado retira o resolver na
desmontagem do servo motor.
O Servoconversor
Usamos o termo “Conversor Estático” para
designar genericamente circuitos de
eletrônica de potência que operam na
mudança da tensão e da forma de onda de
uma fonte de energia elétrica por meio de
uma sequencia de comutações de
interruptores estáticos (chaves
semicondutoras como tiristores, transistores bipolares, MOSFETs, IGBTs, GTOs, etc). Os
circuitos retificadores controlados, circuitos choppers, circuitos inversores e os circuitos
conversores de fase (que permitem o acionamento de um motor trifásico a partir de um
sistema de alimentação monofásico) são alguns exemplos de conversores estáticos.
Usa-se também o termo “Drive”, mas para designar genericamente o equipamento que
realiza o acionamento elétrico de motores. Drive é um equipamento para utilização em
aplicações industriais nos mais variados segmentos. Os drives são divididos em diversas
famílias, por exemplo, conversores de frequência (inversores), softstarters e
servoconversores.
Os softstarters são equipamentos de eletrônica de potência que atuam como chaves de
partida estática, projetadas para acelerar e desacelerar e proteger motores elétricos de
indução trifásicos. Os inversores de frequência são equipamentos destinados a controlar
e variar a velocidade de motores elétricos de indução trifásicos.
Já os servoconversores são equipamentos para utilização em aplicações industriais
onde se necessita elevada dinâmica, controle de torque, robustez, precisão de velocidade
e posicionamento, contribuindo para o aumento da qualidade e produtividade.
A mais recente tecnologia embarcada faz dos servoconversores os equipamentos mais
versáteis disponíveis no mercado. Possibilidade de comunicação direta com controladores
externos, comunicação nos mais variados meios Fieldbus e possibilidade de associação
de múltiplos eixos numa mesma fonte de alimentação, entre outras características, fazem
dos servoconversores uma excelente opção no Upgrade de máquinas e equipamentos em
geral.
22
Controle de um Servo Motor
Para fazer um servo funcionar você deve liga-lo a um receptor (RX) e este receptor
deve estar ligado a uma bateria que forneça no mínimo 4,8volts ( não discutiremos aqui
uma ligação com Speed Control ). Este receptor deve estar sintonizado a um rádio ( TX ).
Em geral um receptor para um aeromodelo elétrico deve ter no mínimo 3 canais ( sendo
mais comum encontrarmos os receptores de 4 canais ), mas para os aeromodelos mais
simples usamos só 2 servos. Cada servo é ligado a um canal diferente do receptor e
recebe um sinal no formato PWM ( Pulse Width Modulation ). Este sinal pode ter 0 Volts
ou 6Volts. O circuito de controle do servo fica monitorando este sinal em intervalos de
20ms (mili segundos), se dentro deste intervalo ele percebe uma alteração do sinal de 0v
para 6v durante 1ms até 2ms ele altera a posição do seu eixo para coincidir com o sinal
que recebeu.
Uma vez que o servo recebe um sinal de 1,5ms ( por exemplo ), ele verifica se o
potenciômetro encontra-se na posição correspondente, se estiver ele não faz nada. Se o
potenciômetro não estiver na posição correspondente ao sinal recebido, o circuito de
controle aciona o motor até o potenciômetro estar na posição certa. A direção de rotação
do motor do servo vai depender também da posição do potenciômetro, o motor vai girar
na direção que mais rápido levar o potenciômetro até a posição certa.
Se tentarmos alterar a posição do braço do servo a força, veremos que ele faz uma
resistência e tenta manter a posição que lhe foi designada pelo sinal que recebeu. Ele faz
isto por que o potenciômetro esta conectado diretamente ao eixo de saída, e detecta
23
qualquer alteração na posição do mesmo. E é isto que faz o servo
ser tão importante para nós. Quando mandamos ir para uma
posição ele vai e fica lá até receber outra "ordem". Esta
"resistência" que o servo faz a uma mudança a força da posição do
seu braço, chamamos de Torque. O Torque é a principal
característica de um servo. Medimos o torque em kg-cm (Kilo
gramas por centímetro ) ou oz-in (Onças por polegadas). Mas o
que significa isso? Veja a figura ao lado:
Considere que o braço deste servo tem 1cm até o ponto onde é
conectado ao peso, e o peso é de 1Kg. O servo consegue manter a
posição do seu braço mesmo com o peso puxando p/ baixo sem
ceder nem quebrar. Podemos dizer que este servo tem um torque
de 1 kg-cm ou 14 oz-in.
Se excedermos estes limites provavelmente o servo vai quebrar
suas engrenagens. A maioria dos fabricantes de servos vendem
conjuntos de engrenagens extras se isto acontecer.
Os servos em geral são classificados em categorias, as que em geral nós do mundo
dos elétricos usamos são:
Standard = São os servos mais comuns. Grandes e robustos pesam em torno de
35gramas. São usados em geral em modelos com envergadura de 1,20m ou mais, onde
se necessita de um peso extra para se atingir o CG ideal. São os que usamos em nossas
Asas Elétricas.
Mini = São menores que o Standard pesando algo entre 20 e 28 gramas. Não são tão
usados assim pois podem ser facilmente substituídos por um servo micro.
Micro = Eu diria que são os mais usados em aeromodelos elétricos. Pequenos, leves e
com um bom torque. Podem variar desde 6 até 20 gramas.
Pico = Embora não sejam os menores servos, estão bem próximos. Usados em modelos
pequenos para voo impor, ou onde leveza é fundamental.
Podemos dizer que todos os fabricantes de servos com exceção da Airtronics
respeitam um padrão de conexão. Então você pode usar um servo Hitec num receptor
Futaba, um servo Futaba num receptor JR, etc. Embora a pinagem da conexão seja a
mesma o chanfro do conector pode variar um pouco, mas nada que impeça você de
conecta-lo. Existem diversos fabricantes de servos hoje em dia 90% dos casos eles usam
o padrão da Futaba.
24
3 METODOLOGIA
A construção do robô aranha visa fazer uso de dois servomotores, uma base de
madeirite e barras de alumínio. A montagem do robô pode ser dividida em duas partes: a
primeira é a construção da parte estrutural do robô inseto, base e pernas, e,
posteriormente, a parte eletromecânica, que se refere à construção dos blocos dos
servomotores. Esses servos deverão ser adaptados para rotação contínua, mas devem
perder a referência no potenciômetro quando adaptado, só que agora o movimento será
transferido para outra haste de transmissão, e ela deverá ser usada como referência para
o controle do servomotor. Por isso, esta será fixada ao eixo do potenciômetro, que será o
eixo principal do bloco. Deste modo, não conseguiremos controlar precisamente a posição
da haste. Onde faz parte de um conjunto de transferência de movimento as pernas, de
modo que o torque disponível seja maior, para possibilitar uma correta movimentação do
robô inseto. É necessário que se tome bastante cuidado durante a construção para evitar
que ele fique mal estruturado e não caminhe corretamente.
Começaremos pela montagem estrutural, iremos confeccionar as pernas do robô com
quatro barras (perfis) de alumínios quadradas de ¼ polegadas. Os comprimentos destas
pernas devem ser proporcionais
ao tamanho da base. Sendo
assim, cada perna é formada
com um conjunto de “anteperna”,
que será fixada a base do robô;
e um “pé”, que mantém o robô
apoiado no chão. As antepernas
do par que será diretamente
tracionado pelo servomotor terão
comprimento de 10 cm enquanto
que as do outro par terão 8 cm
de comprimento. Nas duas
barras de 8 cm faremos os furos
a 0,5cm de uma extremidade,
para encaixá-la na base, e o
outro a 2 cm deste, para posteriormente, encaixarmos uma barra para a transferência de
movimento. Nas duas maiores faremos uma sequencia de três furos, um furo a 0,5cm de
25
uma extremidade, para que
possamos colocar hastes ligadas ao
servomotor de movimentação
horizontal; outro á 2 cm do primeiro
furo, para encaixa-lo no corpo, e um
terceiro á 2 cm do segundo furo, onde
será fixada a barra para a
transferência do movimento. Além
disso, ainda devemos fazer mais um
furo em cada barra, do lado
perpendicular ao lado onde foram
feitos os primeiros furos, a 0,5cm da
extremidade oposta, para que
possamos posteriormente encaixar os
pés, que serão responsáveis por
manter o corpo do robô acima do
chão. Deve-se lembrar de que o
dimensionamento da base e das
pernas foi definido aleatoriamente, buscando apenas um tamanho proporcional ao servo
motor.
A base foi feita de madeirite, suas dimensões são de 20 cm x 8 cm e devem ser feitos
furos a 0,5cm de cada
lateral, para que
possamos encaixar as
suas pernas. As
antepernas, serão fixadas
à base de madeirite, terão
dois tamanhos padrões,
pois um par será
tracionado por um
servomotor para que
possa se movimentar para
frente enquanto que o
outro par será
movimentado através de
barras de transferências
de movimento, ligadas às
pernas tracionadas pelo
servomotor. Onde será
presa a base através de um parafuso, que servirão de eixos para as pernas, isso é
possível os parafusos proporcionarem movimentos rotacionais dando impulsos para o
robô.
26
27
Em seguida, cortaremos duas barras de alumínio de 20 cm de comprimento. Estas
barras servirão para a transferência de movimento das pernas que serão tracionadas pelo
servomotor responsável pelo movimento horizontal para as outras duas pernas que não
terão ligação com o servomotor. Além elas garantem uma melhor estabilidade á estrutura
Mecânica. Estas barras, no mínimo, devem possuir o mesmo comprimento da base. Para
fazermos os pés utilizamos quatro barras de 7 cm, estes “pés” devem estar bem presos
ás antepernas, não podendo se movimentar. Para isso utilizamos arruelas ou arruelas de
pressão. Logo em seguida, deve-se ficar ás barras de transferência de movimento, onde
se leva em consideração fato de que as hastes se movimentarão. Deixando assim as
pernas paralelas umas as outras. Porém, para que o robô possa mover suas pernas para
frente e atrás sem patinar, serão feitas pernas de movimento vertical. Onde, as
antepernas serão feitas com dimensões de 10 cm de comprimento, será feito três furos,
todos na mesma lateral da perna, o primeiro furo será feito a 0,5cm de cada extremidade,
onde um furo será destinado a fixar os “pés”, o outro será conectado ao servomotor
responsável pela movimentação vertical. Um terceiro furo, localizado a 2.5 cm de
distancia do furo destinado ao servomotor, será utilizado para ficar a perna ao corpo do
robô através um parafuso com função de eixo.
28
No próximo passo é construir o bloco de fixação dos servomotores de movimentos
horizontal e de movimentação vertical, empregando madeira MDF com espessura de
1,5cm, em formato de retângulo de 6cm x 5cm. Assim devemos marcar os encaixes do
servomotores, fazendo marcações dos potenciômetros e das engrenagens. Deve-se
cortar nos formatos das marcações, depois de pronto a base dos servomotores, deve criar
um pino-eixo para o servomotor, onde o seu tamanho irá variar de acordo com o tamanho
do potenciômetro usado como eixo, sendo que o tamanho mínimo esta descrito no tutorial
sobre bloco padrão para servomotores. Depois de montado o bloco do motor e colocado o
eixo do motor e encaixado é preciso fazer um furo no eixo para fixação das engrenagens
do motor. O potenciômetro que colocamos para fora da estrutura do bloco do motor é
para informar a posição que se encontra a maior engrenagem. Assim ao termino do bloco
de movimento horizontal, teremos que desenvolver o bloco de movimentação vertical, que
possui o mesmo princípio de montagem, entretanto devemos ter cuidado para que não
ocorra o desalinhamento dos blocos assim causando problemas com a movimentação do
robô, assim montado um bloco de motor para o movimento das pernas centrais terá que
programa-los com microcontrolador, sendo assim elaborando uma programação. Porém,
temos que fazer com que o servomotor movimente-se de forma continua para que ele
imprima o movimento necessário para que o robô movimente-se. Durante a montagem
será acrescentado sensores para que possa gerar segurança no controle do robô aranha,
como por exemplo, sensor de presença, giroscópio e etc.
Circuito e seu funcionamento: para que o servomortor funcione de forma adequada,
faz-se necessário o envio de um sinal temporizado ao circuito de realimentação PWM
(pulse width modulation). O PWM é uma forma de controle de tensão por recorte, onde os
transistores de potência são ligados ou bloqueados de modo a obter na saída o valor de
tensão desejada (controlador de tensão). Quando o pequeno motor de corrente contínua
(DC), recebe PWM adequado, realiza o movimento baseado na variação de resistência de
um potenciômetro conectado ao eixo do motor de corrente contínua. A variação de
resistência desse que ficou no lugar do potenciômetro informa ao circuito a posição e a
direção do eixo pequeno. Assim, a realização do controle de posição de um servomotor
diz respeito á largura de pulso enviado ao seu circuito eletrônico de realimentação. Para
realizar o controle dos servos via USB utilizam-se microcontroladores, isso se baseia em
sua menor complexidade, seu menor custo e atender os requisitos mínimos de projeto.
Onde a comunicação do PIC, no qual um endereço do servo é enviado e, em seguida,
uma nova posição. Desta forma é possível posicionar qualquer servo enviando ao
microcontrolador apenas dois bytes. Segue Abaixo Passo a Passo de como fazer a placa
de circuito impresso:
1. Passo – Desenhe o lay-out do circuito utilizando qualquer software para circuitos
eletrônicos; Neste projeto utilizou-se Circuito EAGLE. Imprima com impressora
laser o desenho em uma folha de papel fotográfico para impressora jato de tinta
( neste projeto utilizou-se o papel EPSON código S041117) e verificou-se o
tamanho e as trilhas estão no tamanho real do circuito, segue abaixo imagens
das placas desenhas pelo programa.
29
30
2. Passo- Prepare a placa limpando a superfície de cobre de sujeira, oxidação e
gordura, utilize algum produto químico ou se preferir, passe lã de aço que dá o
mesmo resultado. Coloque o papel com a face impressa sobre a placa já cortada
no tamanho exato.
3. Passo- Com um ferro de passar roupas bem quentes, pressione o papel sobre a
placa, não é necessário friccionar, apenas faça pressão por aproximadamente
dois minutos. Escolha bem a superfície onde vai apoiar placa, evitando estragar
alguma superfície com o calor do ferro. Cuidado também para não exagerar ao
fazer pressão e acabar danificando o ferro de passar.
4. Passo- Feito isso, o toner impresso no papel estará preso no cobre da placa.
Não caia na tentação de puxar o papel nesse momento; calma, ainda restam
alguns passos. Prepare uma pequena vasilha com água quente e um pouco de
detergente, quantidade suficiente para cobrir a placa. Mergulhe sua placa na
água e aguarde cerca de trinta minutos. Isso irá amolecer o papel e facilitar sua
retirada.
5. Passo- Agora retire o papel. Friccione as pontas dos dedos sobre ele, não é
preciso muita força, pois o papel molhado é fácil de sair. Se dor preciso molhe
algumas vezes a placa na água da panela e fazendo movimentos com os dedos
até retirar todo o papel.
6. Passo- Proceda a corrosão de cobre não protegido pelo toner. Após a corrosão
ele é retirado com o auxilio mais uma vez da lã de aço. Passe uma fina camada
de verniz protetor, perfure a placa e ela está pronta para a inserção dos
componentes eletrônicos e soldagem dos mesmos. Segue abaixo a imagem da
placa pronta.
31
Programação: O programa do Robô Inseto foi desenvolvido em linguagem CCS e
compilado o arquivo hex. No MPLAB. O conceito do movimento, todo o resto é simples e
segue o conceito de como ele se locomove.
Analisando a figura abaixo você perceberá que um dos servos atua levantando um dos
lados do robô (patas centrais). Isso faz com que duas patas “externas” fiquem em contato
com o solo e outras duas não. As duas patas em contato com o solo são controladas por
outro servo que faz com que as mesmas mova-se para frente ou para trás.
A figura abaixo demonstra a sequencia de movimentos para o Robô. Levantando um
dos lados (movimento 1 e 2) e movendo as patas “externas” e depois levantando o outro
lado e movendo novamente as patas “externas” (movimento 3 e 4) tem-se o movimento (à
frente). Invertendo esta sequencia tem-se o movimento contrário (para trás)
32
Alguns robôs de mesmo tipo têm um número maior de servos e o desvio torna-se uma
tarefa mais fácil. No caso do robô que eu desenvolvi o desvio é um pouco mais complexo.
Primeiro o robô precisa ser “elevado” em um de seus lados. Depois ele precisa ser
movido para traz (movimentos 1 e 2). Após este movimento o robô terá uma pequena
inclinação para o lado. Então centralizamos as pernas de elevação e movimentamos as
patas “externas” novamente para o lado contrário (movimentos 3 e 4). Neste momento o
robô patina, pois todas as patas estão em contato com o solo. Novamente a operação (1,
2, 3 e 4) é executada até que o movimento seja suficiente para o desvio.
A figura abaixo você tem o fluxograma que demonstra o programa. O programa
também foi ricamente ilustrado. Estude-o para compreender melhor o funcionamento do
conjunto.
33
Programação em C
#include <18F4550.h> // Arquivo de pré-processamento para o modelo 18F4550
#fusesHSPLL,PLL5,USBDIV,CPUDIV1,VREGEN,NOWDT,NOPROTECT,NOLVP,NOD
EBUG //Configurações de fuses
#use delay(clock=48000000) // Clock em 48MHz (Cristal de 20MHz e PLL habilitado)
#define CODE_START 0x1000 // Endereço inicial de memória para o programa de
usuário
#build(reset=CODE_START, interrupt=CODE_START+0x08) //Posições de memória
para RESET e INTERRUPÇÃO
#org 0, CODE_START-1 {} // Reserva espaço de memória para o bootloader
#include <usb_san_cdc.h> // Biblioteca para comunicação USB (Emula Serial)
// é o protocolo cdc para comunicação USB ponto a ponto USB(é o meio físico)
int estado; // Declaraçao da varíável estado (Inteiro)
long int contador; // Variavel contador de pulsos
void main ()
{
usb_cdc_init(); // Inicializa o protocolo CDC
usb_init(); // Inicializa o periférico USB
usb_task(); // Une o periférico com USB do PC
// setup_psp(PSP_DISABLED); // Desativa periférico PSP multiplexado com o PORTD
// setup_CCP1(CCP_OFF); // Desativa módulo CCP compartilhado com o PORTD
// delay_ms(100); // Aguarada ativação dos pull-ups
// output_B(0); // Desativa todos os bits da porta B
estado=1; // Define o estado inicial
//contador=0;
delay_ms(1000);
while (true) // Loop infinito
{
switch (estado) // Verifica o estado atual
{
CASE 1:
34
while(true) // while 1
{
for(estado=0; estado<=20; estado++) //horario
{
output_high(pin_b7);
output_high(pin_b6);
delay_ms(2);
output_low(pin_b7);
output_low(pin_b6);
delay_ms(18);
}
output_low(pin_b7);
output_low(pin_b6);
delay_ms(1000);
for(estado=0; estado<=20; estado++) // ante-Horario
{
output_high(pin_b7);
output_high(pin_b6);
delay_ms(1);
output_low(pin_b7);
output_low(pin_b6);
delay_ms(19);
}
output_low(pin_b7);
output_low(pin_b6);
delay_ms(1000);
if (input(pin_b0) == 1)
{
estado=2;
break;
}
}
break;
CASE 2:
while(true) // while 2
35
{
for(estado=0; estado<=20; estado++) //horario
{
output_high(pin_b7);
delay_ms(1);
output_low(pin_b7);
delay_ms(19);
output_high(pin_b6);
delay_ms(2);
output_low(pin_b6);
delay_ms(2);
}
output_low(pin_b7);
output_low(pin_b6);
delay_ms(1000);
for(estado=0; estado<=20; estado++) // ante-Horario
{
output_high(pin_b7);
delay_ms(2);
output_low(pin_b7);
delay_ms(18);
output_high(pin_b6);
delay_ms(1);
output_low(pin_b6);
delay_ms(1);
}
output_low(pin_b7);
output_low(pin_b6);
delay_ms(1000);
if( input(pin_b0) == 1 )
{
estado=2;
break;
}
} // while 2
36
break;
} // switch
} // while 1
} // global
4. RESULTADOS E DISCUSSÕES
Inicialmente, começamos com a montagem do robô pela parte estrutural, não tivemos
muitos problemas apenas com as adaptações para com ele, devido ter muitas partes
pequenas na sua estrutura. Percebemos que durante a montagem deste robô, sua
aplicação seria variada para uma indústria, apenas fazendo adaptações mecânicas. Mas
durante o seu desenvolvimento tivemos alguns problemas, como exemplos, alterações
onde em vez de utilizar engrenagens trocamos por um eixo de transmissão. Houve a
alteração do motor, onde a programação inicia-se com um servo motor limitado a 90
graus positivo e negativo, e passou a funcionar como um motor de DC, girando a 360 sem
interrupção e perdendo a sua referencia que seria a precisão.
Contudo, depois de alterado perdemos a precisão no servomotor, então tivemos que
utilizar uma frequência de 50Hz a 60Hz na programação, assim complementando como o
contador. Para rodar em sentido anti-horário é só manter um pulso de 2ms e no sentido
horário 1 ms. Mas como retiramos a precisão do motor, tivemos que realizar uma serie de
testes para ajustá-lo para a sua determinada função. Sendo assim passamos a alterar a
sua estrutura inúmeras vezes ate que chegamos a um ponto demasiado que atingiu as
nossas expectativas.
Como dito anteriormente o foco da primeira parte deste trabalho era a montagem do
protótipo do robô, onde assim poderíamos partir com a programação. Mas como houve
uma serie de problemas com ela, descreverei as mais importantes. Lembrando que fomos
afinco em seis bibliografias e alterando-as para obter o resultado final desejado. Descrito
abaixo temos uma serie de problemas com as patas centrais, onde houve adaptações e
mudanças no projeto.
1. Foi feita uma montagem baseado em engrenagens na transmissão do robô, mas
como a peça a ser adquirida era muito pequena, e de difícil acesso foi
impossível realizar esta montagem do robô;
2. Como segunda ideia trabalhou como uma haste de transmissão, onde
substituiria uma das engrenagens, primordialmente esta ideia foi produtiva, mas
quando feito e testada na prática, descobrimos que nosso protótipo estava
descentralizado, então sabíamos que teríamos que utilizar haste de transmissão
mas adaptada ao nosso projeto;
37
3. Na terceira fase do protótipo fizemos uma junção da haste de transmissão e
adaptamos as patas centrais para que ela armazene energia potencial
gravitacional, mas falhamos outra vez, devido que o torque no motor não foi o
suficiente para que ele levante um lado;
4. A ultima opção que tentamos foi enfim criar algo semelhante a uma “gangorra”
pois quando uma perna estivesse no alto a outra teria que estar no chão
sustentando a outra, inicialmente foi feito o teste com arame de 3 mm, mas para
que tivesse um ângulo de inclinação perfeito passamos a adotar uma barra fina
de alumínio, onde houve sucesso, em levantar a as patas centrais; segue abaixo
uma ilustração desta parte testada e pronta.
Lembrando que o progresso com a programação do projeto seguiu junto com a sua
estrutura e sendo assim, cada vez que houve alteração da estrutura, tivemos que alterar
sua programação, para que o motor não trave ou não exija mais que a sua potência
permita. Contudo nos primórdio da programação houve um erro, que quando testávamos
o motor ele rodava e não tinha uma posição única, então, percebemos que estávamos
trabalhando fora da sua frequência permitida, então ele perdia a referencia e entrava em
um loop continuo. Porém, depois de resolvido estes problemas conseguiu-se fazer com
que o robô se locomova, sendo assim o objetivo parcial do projeto foi atingido com
sucesso.
38
5.CONCLUSÕES
Através das analises feitas com o robô percebeu-se que o produto final atingiu todos os
requisitos selecionados até este momento, porém é bom salientar que cada tipo de robô
atinge uma função especifica, sendo assim este antes de fazer qualquer outra função tem
de ser adaptado mecanicamente.
Com relação á funcionalidade e operacionalidade do robô veio apresentar uma ótima
locomoção e também operacionalidade simples e fácil, mas apresentando problemas
específicos na sua montagem, onde a estratégia utilizada mostrou-se eficaz na
transmissão e controle dos movimentos, mesmo os movimentos sincronizados. O controle
utilizado poderá ser mais lento que o utilizado atualmente na robótica possui métodos que
podem facilitar o desenvolvimento e controle de aplicações robóticas.
O programa apresentado pode ser modificado de forma a possuir uma interpretação
mais clara ou que os usuários podem controlar os servos motores manualmente. Ele
também pode ser alterado de modo a proporcionar um melhor funcionamento, como
manter o robô na posição de repouso ao pressionar um botão parar. Outra alteração que
pode ser feita é a utilização do teclado do KIT ou de chaves digitais ligadas ás entradas
Digitais para controlar o movimento do robô. É possível fazer uma versão automática
empregando sensores para detectar o caminho a ser feito. A mecânica e a estrutura do
robô podem sofrer grandes alterações, de modo a facilitar a sua montagem ou tornar seus
movimentos mais eficientes. É possível também acrescentar garras ou outras estruturas
mecânicas diversas.
Como comentário final temos a dizer que a mecatrônica nos trás facilidade a uma serie
de adaptações de maquinas para o serviço industrial, porém ainda atualmente encontra-
se com um custeio muito elevado, sendo assim não estando em contra para pequenas e
medias empresas as adquirirem, uma das soluções é desenvolver equipamentos com
materiais reutilizáveis para baixar seu preço. Porém assim compensando em eficiência e
montagem, apenas adaptando-o para realizar uma única função.
6 Referências Bibliográficas:
 Souza, D. J. e LAVINIA, C. N. Conectando o PIC - Recursos Avançados, 2003,
61-95p.
 Zanco, W. S. Microcontroladores PIC18F4550A - Uma abordagem prática e
objetiva, São Paulo: 19p.
 Pereira, F. Microcontroladores PIC - Técnicas Avançadas, 2003, São Paulo:
192p.
 Manzano, J. A. N. G. Fundamentos em Programação Assembly para
computadores IBM-PC a partir dos microprocessadores Intel 8086/8088, 2003, 320-
357p.
 Stallings, W, Arquitetura e Organização de Computadores. 1998. São Paulo:
470p.
39
 Torres, Fernando E; Martins, Henrique R; Sistemas Microcontrolados.
Disponivel:http://www.decom.ufop.br/lex/arquivos/sof_bas_EC/Apostila_PICMInas.pdf, 44-
49p;
 Marco, Antonio; Apostila: Programação de microcontroladores PIC usando a
linguagem C; Centro Federal de Educação Tecnologia do Espírito Santo; 2006;
Disponível: http://www.pictronics.com.br/downloads/apostilas/Apostila-Pic-C.pdf; 1-3p;
 MOHAN, Ned – UNDELAND Tore M. – ROBBINS Willian P. Power electronics,
Converters, Applications and Design, 2ª ed. John Willey & Sons, Inc. U.S.A, 1995.
 BOSE B. K. Introduction to Microcomputer Control. General Electric Company
 MICROCHIP Datasheet microcontrolador PIC18F4550 - [online]. Disponível em
URL: http://www.microchip.com/. [capturado em outubro de 2013].

Contenu connexe

Tendances

Apostila sobre controlador lógico programável avançado
Apostila sobre controlador lógico programável avançadoApostila sobre controlador lógico programável avançado
Apostila sobre controlador lógico programável avançadoClaudio Arkan
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelosdetectfelix
 
Guia de primeiros passos do logo!
Guia de primeiros passos do logo!Guia de primeiros passos do logo!
Guia de primeiros passos do logo!Marcio Miranda
 
Apostila controladores ladder
Apostila controladores ladderApostila controladores ladder
Apostila controladores ladderMaycon Vinicius
 
Apostila controladores ladder
Apostila controladores ladderApostila controladores ladder
Apostila controladores ladderMatheus Barbosa
 
Linguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpLinguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpJÚLIO PEIXOTO
 
Clp completa
Clp completaClp completa
Clp completapanelada
 
15507933 apostila-de-cl ps-ladder
15507933 apostila-de-cl ps-ladder15507933 apostila-de-cl ps-ladder
15507933 apostila-de-cl ps-ladderelkbongg
 
Sistemas logicos programaveis
Sistemas logicos programaveisSistemas logicos programaveis
Sistemas logicos programaveislaritha
 
Barramento de entrada e saída de clp
Barramento de entrada e saída de clpBarramento de entrada e saída de clp
Barramento de entrada e saída de clpWalisom Clevio
 
Apostila de plc gladimir
Apostila de plc gladimirApostila de plc gladimir
Apostila de plc gladimirOperador10
 

Tendances (19)

Apostila sobre controlador lógico programável avançado
Apostila sobre controlador lógico programável avançadoApostila sobre controlador lógico programável avançado
Apostila sobre controlador lógico programável avançado
 
Clp varios modelos
Clp varios modelosClp varios modelos
Clp varios modelos
 
Apostila1 clp logo
Apostila1 clp logoApostila1 clp logo
Apostila1 clp logo
 
Guia de primeiros passos do logo!
Guia de primeiros passos do logo!Guia de primeiros passos do logo!
Guia de primeiros passos do logo!
 
Apostila controladores ladder
Apostila controladores ladderApostila controladores ladder
Apostila controladores ladder
 
Apostila cpic
Apostila cpicApostila cpic
Apostila cpic
 
Apostila controladores ladder
Apostila controladores ladderApostila controladores ladder
Apostila controladores ladder
 
Pic18xx
Pic18xxPic18xx
Pic18xx
 
Linguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO ClpLinguagens De ProgramaçãO Clp
Linguagens De ProgramaçãO Clp
 
Clp completa
Clp completaClp completa
Clp completa
 
15507933 apostila-de-cl ps-ladder
15507933 apostila-de-cl ps-ladder15507933 apostila-de-cl ps-ladder
15507933 apostila-de-cl ps-ladder
 
Aplicações do microcontrolador PIC
Aplicações do microcontrolador PICAplicações do microcontrolador PIC
Aplicações do microcontrolador PIC
 
Sistemas logicos programaveis
Sistemas logicos programaveisSistemas logicos programaveis
Sistemas logicos programaveis
 
Barramento de entrada e saída de clp
Barramento de entrada e saída de clpBarramento de entrada e saída de clp
Barramento de entrada e saída de clp
 
ARM
ARMARM
ARM
 
Apostila de plc gladimir
Apostila de plc gladimirApostila de plc gladimir
Apostila de plc gladimir
 
Seminario pic
Seminario picSeminario pic
Seminario pic
 
Clp Conceito
Clp ConceitoClp Conceito
Clp Conceito
 
Apostila clp cefet sp
Apostila clp   cefet spApostila clp   cefet sp
Apostila clp cefet sp
 

Similaire à Corpo relatorio

Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores picCesar Prim
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptxfmtpereira
 
Aula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAntonioCarlos349007
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores picAnderson Inácio Morais
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICAlexandre Brandão Lustosa
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16Gabriel Lima
 
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEM
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEMMICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEM
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEMzelmasantos2015
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Flávia Martins
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemensSENAI SP
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPET Computação
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634JADSON SANTOS
 
Computador de Bordo, Linux
Computador de Bordo, LinuxComputador de Bordo, Linux
Computador de Bordo, Linuxbarrosjonatas
 
Projeto baja ifpb (1) pronto
Projeto baja ifpb (1) prontoProjeto baja ifpb (1) pronto
Projeto baja ifpb (1) prontoNando Mathias
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-cjlconrado
 
119178832 141.computador
119178832 141.computador119178832 141.computador
119178832 141.computadorPelo Siro
 

Similaire à Corpo relatorio (20)

Microcontroladores pic
Microcontroladores picMicrocontroladores pic
Microcontroladores pic
 
Microcontroladores PIC.pptx
Microcontroladores PIC.pptxMicrocontroladores PIC.pptx
Microcontroladores PIC.pptx
 
Aula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptxAula 2 - Introdução aos Miconcontroladores.pptx
Aula 2 - Introdução aos Miconcontroladores.pptx
 
Introducao clp
Introducao clpIntroducao clp
Introducao clp
 
Porta Eletronica
Porta EletronicaPorta Eletronica
Porta Eletronica
 
1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic1 história e características dos microcontroladores pic
1 história e características dos microcontroladores pic
 
Arquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PICArquitetura de Microcontroladores Microchip PIC
Arquitetura de Microcontroladores Microchip PIC
 
Gerenciador do atmega16
Gerenciador do atmega16Gerenciador do atmega16
Gerenciador do atmega16
 
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEM
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEMMICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEM
MICROCONTROLADORES E PLATAFORMAS DE PROTOTIPAGEM
 
Basico sobre clp
Basico sobre clpBasico sobre clp
Basico sobre clp
 
Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4Pcs2031 projeto01 introducao_pic_v4
Pcs2031 projeto01 introducao_pic_v4
 
Curso clp siemens
Curso clp siemensCurso clp siemens
Curso clp siemens
 
Sistemas Supervisórios
Sistemas SupervisóriosSistemas Supervisórios
Sistemas Supervisórios
 
Ref site pic_bom
Ref site  pic_bomRef site  pic_bom
Ref site pic_bom
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 
3b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e53886343b5d17 748a8b99e224a1bf91f42123e5388634
3b5d17 748a8b99e224a1bf91f42123e5388634
 
Computador de Bordo, Linux
Computador de Bordo, LinuxComputador de Bordo, Linux
Computador de Bordo, Linux
 
Projeto baja ifpb (1) pronto
Projeto baja ifpb (1) prontoProjeto baja ifpb (1) pronto
Projeto baja ifpb (1) pronto
 
Apostila pic-c
Apostila pic-cApostila pic-c
Apostila pic-c
 
119178832 141.computador
119178832 141.computador119178832 141.computador
119178832 141.computador
 

Dernier

Treinamento de NR06 Equipamento de Proteção Individual
Treinamento de NR06 Equipamento de Proteção IndividualTreinamento de NR06 Equipamento de Proteção Individual
Treinamento de NR06 Equipamento de Proteção Individualpablocastilho3
 
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdfLivro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdfSamuel Ramos
 
A Importância dos EPI's no trabalho e no dia a dia laboral
A Importância dos EPI's no trabalho e no dia a dia laboralA Importância dos EPI's no trabalho e no dia a dia laboral
A Importância dos EPI's no trabalho e no dia a dia laboralFranciscaArrudadaSil
 
LEAN SIX SIGMA - Garantia da qualidade e segurança
LEAN SIX SIGMA - Garantia da qualidade e segurançaLEAN SIX SIGMA - Garantia da qualidade e segurança
LEAN SIX SIGMA - Garantia da qualidade e segurançaGuilhermeLucio9
 
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICADESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICAPabloVinicius40
 
Eletricista instalador - Senai Almirante Tamandaré
Eletricista instalador - Senai Almirante TamandaréEletricista instalador - Senai Almirante Tamandaré
Eletricista instalador - Senai Almirante TamandaréGuilhermeLucio9
 
Tecnólogo em Mecatrônica - Universidade Anhanguera
Tecnólogo em Mecatrônica - Universidade AnhangueraTecnólogo em Mecatrônica - Universidade Anhanguera
Tecnólogo em Mecatrônica - Universidade AnhangueraGuilhermeLucio9
 

Dernier (7)

Treinamento de NR06 Equipamento de Proteção Individual
Treinamento de NR06 Equipamento de Proteção IndividualTreinamento de NR06 Equipamento de Proteção Individual
Treinamento de NR06 Equipamento de Proteção Individual
 
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdfLivro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
Livro Vibrações Mecânicas - Rao Singiresu - 4ª Ed.pdf
 
A Importância dos EPI's no trabalho e no dia a dia laboral
A Importância dos EPI's no trabalho e no dia a dia laboralA Importância dos EPI's no trabalho e no dia a dia laboral
A Importância dos EPI's no trabalho e no dia a dia laboral
 
LEAN SIX SIGMA - Garantia da qualidade e segurança
LEAN SIX SIGMA - Garantia da qualidade e segurançaLEAN SIX SIGMA - Garantia da qualidade e segurança
LEAN SIX SIGMA - Garantia da qualidade e segurança
 
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICADESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
DESTRAVANDO O NOVO EDITAL DA CAIXA ECONOMICA
 
Eletricista instalador - Senai Almirante Tamandaré
Eletricista instalador - Senai Almirante TamandaréEletricista instalador - Senai Almirante Tamandaré
Eletricista instalador - Senai Almirante Tamandaré
 
Tecnólogo em Mecatrônica - Universidade Anhanguera
Tecnólogo em Mecatrônica - Universidade AnhangueraTecnólogo em Mecatrônica - Universidade Anhanguera
Tecnólogo em Mecatrônica - Universidade Anhanguera
 

Corpo relatorio

  • 1. 1 1.INTRODUÇÃO Nos últimos anos o mundo vem presenciando enormes avanços na microeletrônica, os circuitos eletrônicos são cada vez mais rápidos e eficientes, por sua vez com uma redução significativa de custos. Associados diretamente à microeletrônica, os sistemas microprocessados digitais e a ciência da computação também se desenvolveu rapidamente num círculo virtuoso com o desenvolvimento de componentes mais poderosos com a capacidade de implementação de aplicações mais complexas, que por sua vez exigem uma maior capacidade de tecnologia computacional. Os microcontroladores estão presentes em quase tudo o que desenvolve a eletrônica, diminuindo o tamanho, facilitando a manutenção e gerenciando tarefas internas de equipamentos. Um microcontrolador pode efetuar várias funções que necessitam de um grande numero de outros componentes. Assim, esta pesquisa propõe a construção de um robô de inspeção controlado via sinal de radio frequência acoplado a uma câmera de vídeo. O robô será composto por sensores de proximidade e servomotores. Além disto, o robô também terá um sistema transmissor-receptor de rádio frequência para o controle à distância, e uma câmera de vídeo que irá gerar as imagens em tempo real e enviá-la a um microcomputador. Tanto o movimento do robô quanto o sistema de transmissão-recepção de dados serão realizados por um microcontrolador. 2 FUNDAMENTAÇÃO TEORICA E OBJETIVOS 2.1 Objetivos  Participar das etapas de desenvolvimento do processo de um sensor, desde a sua caracterização até a confecção final;  Estudar e colocar em prática conhecimentos fundamentais na área de mecatrônica, como, estudo de sensores e métodos de condicionamento de sinais;  Fornecer uma fundamentação teórica de microcontroladores que possibilite ao desenvolvedor projetar e programar sistemas em linguagem C;  Utilizar materiais de baixo custo, para proporcionar acessibilidade à montagem do projeto, assim tendo adequadas nas especificações do projeto; FUNDAMENTOS TEORICOS Microcontrolador Podemos definir o microcontrolador como um "pequeno" componente eletrônico, dotado de uma "inteligência" programável, utilizado no controle de processos lógicos. O controle de processos deve ser entendido como o controle de periféricos, tais como: led´s, botões, display's de cristal líquido (LCD), resistências, relês, sensores diversos (pressão, temperatura, etc.) e muitos outros. São chamados de controles lógicos pois a operação do sistema baseia-se nas ações lógicas que devem ser executadas, dependendo do estado dos periféricos de entrada e/ou saída. É o nome que a Microchip adotou para a sua
  • 2. 2 família de microcontroladores, sendo que a sigla significa Controlador Integrado de Periféricos. O PIC é um circuito integrado produzido pelo Microchip Technology Inc., que pertence da categoria dos microcontroladores, ou seja, um componente integrado que em um único dispositivo contem todos os circuitos necessários para realizar um completo sistema digital programável. Internamente dispõe de todos os dispositivos típicos de um sistema microprocessado, ou seja: Uma CPU (Central Processor Unit ou seja Unidade de Processamento Central) e sua finalidade é interpretar as instruções de programa. Uma memória PROM (Programmable Read Only Memory ou Memória Programavel Somente para Leitura) na qual ira memorizar de maneira permanente as instruções do programa. Uma memória RAM (Random Access Memory ou Memória de Acesso Aleatório) utilizada para memorizar as variáveis utilizadas pelo programa. Uma serie de LINHAS de I/O para controlar dispositivos externos ou receber pulsos de sensores, chaves, etc. Uma serie de dispositivos auxiliares ao funcionamento, ou seja, gerador de clock, bus, contador, etc. A presença de todos estes dispositivos em um espaço extremamente pequeno, da ao projetista ampla gama de trabalho e enorme vantagem em usar um sistema microprocessado, onde em pouco tempo e com poucos componentes externos podemos fazer o que seria oneroso fazer com circuitos tradicionais. O PIC esta disponível em uma ampla gama de modelos para melhor adaptar-se as exigências de projetos específicos, diferenciando-se pelo numero de linha de I/O e pelo conteúdo do dispositivo. Inicia-se com modelo pequeno identificado pela sigla PIC12Cxx dotado de 8 pinos, até chegar a modelos maiores com sigla PIC18Cxx dotados de 42 pinos. Programação do PIC Como o PIC é um dispositivo programável, o programa tem como objetivo deixar instruções para que o PIC possa fazer atividades definidas pelo programador. Um programa é constituído por um conjunto de instruções em sequencia, onde cada uma identificara precisamente a função básica que o PIC ira executar. Um programa escrito em linguagem assembler ou em C pode
  • 3. 3 ser escrito em qualquer PC utilizando-se qualquer processador de texto que possa gerar arquivos ASCII (Word, Notpad etc). Um arquivo de texto que contenha um programa em assembler é denominado de source ou código assembler. Uma vez preparado o nosso código assembler ou C(veremos mais adiante), iremos precisar de um programa para traduzir as instruções mnemônicas e todas as outras formas convencionais com que escrevemos o nosso código em uma serie de números (o opcode) reconhecível diretamente pelo PIC. Este programa se chama compilador assembler ou assemblador, o compilador usado neste curso será o PCWH. Na figura seguinte está esquematizado o fluxograma de operações e arquivos que devera ser realizado para passar um código assembler a um PIC a ser programado. MpLab O MpLab é um ambiente integrado de desenvolvimento (I.D.E.: Integrated Development Environment). No mesmo ambiente o usuário pode executar todos os procedimentos relativos ao desenvolvimento de um software para o PIC (edição, compilação, simulação, gravação), tornando o trabalho do projetista mais produtivo. Este programa é totalmente gratuito e pode ser pego no site www.microchip.com. Edição O MpLab possui um editor de texto para seus programas que possui diversas ferramentas de auxílio como localizar, substituir, recortar, copiar e colar. Compilação Compilar significa traduzir um programa escrito em assembly (mneumônicos) para linguagem de máquina (números). A compilação gera um arquivo com extensão .hex (hexadecimal) a partir dos arquivos de código fonte (.asm) e de projeto (.pjt). É o conteúdo do arquivo hexadecimal que é gravado na memória de programa do PIC. Simulação O MpLab possui ferramentas para simulação do programa no próprio computador, possibilitando a execução passo a passo, visualização e edição do conteúdo dos registradores, edição de estímulos (entradas), contagem de tempo de execução, etc. Gravação Para que o programa seja executado no microcontrolador, o arquivo hexadecimal deve ser gravado no PIC. O MpLab oferece suporte aos gravadores fabricados pela Microchip. Emulação A Emulação é um recurso de desenvolvimento que possibilita testes em tempo real. O MpLab oferece suporte ao hardware necessário para estar emulando um determinado programa. Esta emulação é feita conectando-se (através do hardware mencionado) o computador ao sistema projetado, no lugar do PIC. PIC18F4550 A seguir são apresentados alguns das características do microcontrolador:  Memória FLASH para armazenamento de programa: 32KBYTES;  Memória SRAM para armazenamento de dados 2 KBYTES;
  • 4. 4  Memória EEPROM de dados: 256 BYTES;  Portas configuráveis como entrada e saída digitais: 35;  Portas configuráveis como canais de entradas analógicas: 13;  Módulo CCP(Capture/Compare/PWM);  Porta paralela de 8-bits (SSP- STREAMING PARALLEL PORT);  Temporizador de 8 e 16 bit: 4;  Watchdog Timer;  Frequência de operação de até 48MHZ;  Múltiplas fontes de interrupção (20);  Dois comparadores;  Periféricos avançados de comunicação: Porta de comunicação serial, USB 2.0;  Arquitetura Harvard, tecnologia RISC com um conjunto de 75 instruções;  Pilha de 31 níveis;
  • 5. 5 Figura ao lado é possível visualizar a pinagem do microcontrolador PIC18F4550 com as portas de entrada e saída(RA, RB, RC, RD E RE), que podem ser configuradas por meio do programa, os canais de entrada analógicas (AN), pinos de alimentação (VDD e VSS), pinos de entrada para oscilador externo (OSC), porta de comunicação serial(RX e TX) e porta de comunição USB (D+ e D-), entra outros. É possível ver também que vários pinos acumulam mais de uma função (Datasheet PIC18F4550). O PIC18F4550 possui até 35 pinos de I/O configuráveis que estão em cinco grupos PORTAS. Desta forma, temos a PORT A, a PORT B, a PORT C, a PORT D e a PORT E. A maioria desses pinos pode ser configurada como entrada ou saída (input/output), e como já foi dito, alguns deles acumulam outras funções. Podemos ver mais detalhes sobre cada pino na Tabela abaixo, que segue (ver datasheet do PIC18F4550 da 18 à 23):
  • 6. 6
  • 7. 7
  • 8. 8
  • 9. 9
  • 10. 10 Arquitetura Interna do PIC18F4550 No diagrama abaixo, podem ser visualizados as diversas partes que compõem o microcontrolador. Observe a ULA (Unidade Lógica Aritmética) ligada ao registrador W ( Work-register). No canto superior esquerdo, abaixo da tabela de ponteiros, temos a memória de programa (32 KBYTES), e saindo deste bloco um barramento de instruções com 16-bits. No lado superior direito é possível visualizar a memória de dados (2 KBYTES), que possui um barramento de dados de 8-bits, conforme explicação na definição da arquitetura Harvard. Do lado direito podemos visualizar as portas com todos os seus pinos de entrada/saída (I/O). Na parte inferior é possível visualizar os periféricos, tais como, a memória EEPROM, os temporizadores (Timer0, Timer1, Timer2, Timer3), o comparador interno, o módulo CCP, porta serial, porta USB, conversor A/D 10-bits. Um pouco mais ao centro da figura, estão representados os osciladores internos, o regulador de tensão da porta USB, Power-up Timer e Watchdog Timer. Na parte superior central, temos o contador de linha de programa e a pilha.
  • 11. 11 Como vimos, por meio de diagrama de blocos, as principais partes de sistema microprocessado padrão, é possível visualizar como estão distribuídas cada uma dessas partes na arquitetura interna d PIC18F4550.
  • 12. 12 Organização da Memória do PIC18F4550 Segue abaixo detalhes da organização da memória do PIC18F4550: Memória de Programa: memória interna flash de 32.768 Bytes (32 Kbytes).  Armazena instruções, constantes e dados;  Pode ser escrita/lida de acordo com o programador externo (off-board), in-circuit ou durante a execução do programa através de ponteiros. Memória RAM de dados: memória SRAM interna de 2048 Bytes (2 Kbytes) e nela estão incluído os registradores de função especial (SFR).  Armazena dados de forma temporária (Memória volátil) durante a execução do programa;  Pode ser escrita/lida em tempo de execução do através de diversas instruções; Memória EEPROM de dados: memória não volátil de 256 Bytes.  Armazena dado que devem ser conservados na ausência de tensão de alimentação;  Pode ser escrita/lida em tempo de execução do programa através de registradores. Observe que para serem lidos ou escritos os dados devem primeiro passar pela memória SRAM. Memória de Configuração: memória que contém bits de configuração (12 Bytes de memória flash) e os registradores de identificação (2 Bytes de memória de apenas leitura). A memória de configuração se trata de um bloco de memória situado a partir da posição 3000000H de memória de programa (muito além do espaço de memória do programa para o usuário). Nesta memória de configuração incluem:  Bits de configuração: contido em 12 bytes de memória flash permitindo a configuração de algumas opções do microcontrolador como:  Opções de oscilador;  Opções de reset;  Opções de watchdog;  Opções para depuração e programação do circuito;  Opções da proteção contra escrita da memória do programa e de dados da memória EEPROM. Estes bits são configurados geralmente durante a programação do Microcontrolador, mas podem ser lidos e modificados durante a execução do programa.  Registradores de identificação: trata-se de registradores situados nos endereços 3FFFFEH e 3FFFFFH que contém informações do modelo e versão do dispositivo. Os registradores são apenas de leitura e não podem ser alterados pelo usuário.
  • 13. 13 Arquitetura Harvard O PIC18F4550 dispõe de barramentos diferentes para o acesso a memória de programa e a memória de dados ( Arquitetura Harvard). O barramento da memória de programa tem 21 linhas de endereçamento e 16/8 linhas de dados (16 linhas para instruções e 8 linhas para dados ). O barramento da memória de dados tem 12 linhas de endereçamento e 8 linhas para dados. Isto permite acessar simultaneamente a memória de programa e a memória de dados. Significa que ele pode executar uma instrução (o que geralmente exige a acesso aos dados de memória), enquanto busca a próxima instrução da memória de programa para ser executada em seguida (processo conhecido como pipeline). Portanto, a execução completa de 1 instrução (Leitura da instrução + execução) se faz em um ciclo de instrução (4 Tosc). Exceção: as instruções que modificam o conteúdo do PC (Program Counter) requerem 2 ciclos de instruções, algumas conhecidas como instruções de salto. Ex: Chamadas de função. Memória de Programa (FLASH) O microcontrolador PIC18F4550 dispõe de uma memória de programa de 32.768 Bytes (0000H-7FFFH). As instruções ocupam 2 Bytes (exceto de instruções em assimbly: CALL, MOVFF, GOTO e LSFR que ocupam 4). Assim, a memória de programa pode armazenar até 16.384 instruções. A operação de leitura da memória na posição acima de 7FFFh resulta com ’0’ (equivalente à instrução NOP). Podemos ainda citar endereços especiais na memória de programa. O endereço do vetor reset é 0000H, o do vetor de interrupções de alta prioridade é 0008H e o do vetor de interrupções de baixa prioridade é 0018H.
  • 14. 14 O valor Reset trata-se do primeiro endereço de memória de programa que será executado quando o PIC começar a rodar (após a alimentação ou um reset). As rotinas de interrupção serão armazenadas na área de programação, juntamente com todo o resto do programa. No entanto, existe um endereço que é reservado para o início do tratamento de todas as interrupções. A pilha é um local, totalmente separado da memória de programação, em que serão armazenados os endereços de retorno quando utilizarmos instruções de chamadas de rotinas (SOUZA, 2005). Memória RAM de dados A memória de dados é utilizada para guardar todas as variáveis e registradores utilizados pelo programa. Essa memória armazena dados de 8 bits e é volátil, ou seja, quando o PIC é desligado, ela é automaticamente perdida. Ela é dividida em 16 bancos de memória, dos quais apenas 8 são utilizados pelo PIC18F4550, ele tem 2048 Bytes de memória RAM (Volátil) divididos em 8 bancos de 256 Bytes. Dos quais, 160 Bytes são reservados aos registradores de funções especiais (SFR) localizado na parte mais alta do banco 15 da memória (endereço F60h até FFFh). Uma informação importante a ser destacada é a diferença de um barramento de endereço do PIC poder endereçar uma determinada quantidade de memória (esse valor está associado ao tamanho do barramento de endereço) e ter o que endereçar (tamanho real da memória de dados). Por exemplo: no PIC18F4550 é possível endereçar até 4 Kbytes de memória SRAM física disponível no hardware. A memória de dados contém os registradores especiais de função (SFRs) e os registradores de propósito gerais (GPRs). Os SFRs e os GPRs são usados para armazenamento temporário de dados e resultados de operações do programa do usuário. Qualquer leitura em um local não implementado é lido como 0 (zero). Quando o modo USB é habilitado, os bancos 4,5,6 e 7 são mapeados para bufferização da porta USB. Quando o modo USB é desabilitado, os GPRs nesse banco são usados como qualquer outro GPR no espaço da memória de dados. Grandes áreas da memória de dados requerem um esquema de endereçamento eficiente para fazer o rápido acesso para qualquer dos endereços possíveis. Idealmente, isso significa que todos os endereços possíveis não precisam ser fornecidos para cada operação de leitura ou escrita. Por isso que no PIC18F4550 existe o esquema de banco de memória, conforme citado acima. O acesso a um Byte da memória SRAM (memória de dados do PIC) é feito pelo Registrador de seleção do Banco (BSR). Esse SFR ocupa os 4 mais significativos bits da localização do endereço, sendo que a instrução ocupa o 8 menos significativos (4-bit + 8-bit de endereçamento). Existe também uma forma de acesso rápido para as 96 posições da parte inferior do banco e os 160 Bytes mais altos do banco 15, os SFRs.
  • 15. 15 O endereço FFFh equivale a 4095 bytes (capacidade máxima de endereçamento com 12-bit). Registradores de Funções especiais no PIC18F4550 Os registradores de funções especiais são usados pela CPU e pelos módulos periféricos para controle de operações desejadas do dispositivo, servem para guardar a configuração e o estado atual da máquina. Os SFRs (o PIC18F4550 possui cerca de 140 SFRs) são os registradores através dos quais monitoramos/controlamos 0 funcionamento da CPU e das unidades funcionais do microcontrolador. O conjunto de SFRs classifica-se em: - SFRs associados a funcionalidades do microcontrolador:  CPU;  INTERRUPÇÕES;  RESET; - SFRs relativos a operações das funcionalidades dos periféricos:  TIMERS;  CONVERSORES A/D;  EUSART;  CCP;  MSSP;  PORTAS DE I/O; Registrador STATUS O registrador STATUS é utilizado para armazenamento de flags (sinalizadores) matemáticos e de estado da CPU, esses flags sinalizam o status aritmético da ULA.
  • 16. 16 Ele possui 8 bits, sendo 5 importantes e descritos abaixo:  N: esse bit indica quando um resultado é negativo. Bit usado para operação com sinal: o N=’0’: resultado da última operação foi positivo. o N=’1’: resultado da última operação foi negativo;  OV: bit de overflow. Bit utilizado para operações com sinal. Indica se houve overflow do 7ºbit: o OV=’0’: não houve overflow na operação aritmética; o OV=’1’: houve overflow na operação aritmética;  Z: bit de zero. Indica se o resultado de uma operação foi zero. o Z=’0: o resultado de uma operação aritmética ou lógica foi diferente de ‘0’; o Z=’1’: o resultado de uma operação aritmética ou lógica foi igual de ‘0’;  DC: bit de transporte de bit entre o nibbles. Se houve transporte de bits de 4º para o 5º. o DC=’0’: não houve transporte dos 4º para o 5º. o DC=’1’: houve transporte dos 4º para o 5º.  C: bit de transporte ou estouro. Se a operação ultrapassou os 8 bits de dados. o C=’0’: não houve transporte ou estouro; o C=’1’: houve transporte ou estouro; Para informações dos outros registradores, consulte o datasheet do PIC18F4550 disponível no site da Microchip. Memória EEPROM de dados A EEPROM é uma memória não volátil separada das memórias de dados RAM e de programa. Que é usada para armazenar dados do programa. No Pic18F4550, a memória EEPROM de dados possui 256 Bytes. Apenas quatro registradores são usados para leitura e escrita de dados na EEPROM. São eles: EECON1, EECON2, , EEDATA, EEADR. Esta memória permite até 1.000.000 de ciclos de leitura e escrita. Pode-se ler/escrever de forma individual cada uma das 256 posições de memória.
  • 17. 17 Servo Motor O que é um Servo Motor O Servo motor é uma máquina síncrona composta por uma parte fixa (o estator) e outro móvel (o rotor). O estator é bobinado como no motor elétrico convencional, porém, apesar de utilizar alimentação trifásica, não pode ser ligado diretamente à rede, pois utiliza uma bobinagem especialmente confeccionada para proporcionar alta dinâmica ao sistema. O rotor é composto por ímãs permanentes dispostos linearmente sobre o mesmo e com um gerador de sinais chamado “RESOLVER” instalado para fornecer sinais de velocidade e posição. Observe a figura abaixo. Quais as características de um servo motor? De um servo motor são exigidos, entre outros, dinâmica, controle de rotação, torque constante e precisão de posicionamento. As características mais desejadas nos servo motores são o torque constante em larga faixa de rotação (até 4500 rpm), uma larga faixa de controle da rotação e variação (até 1:3000) e alta capacidade de sobrecarga (3 x Mo). Estas características são facilmente obtidas através do modo de controle CFC especialmente desenvolvidas para a otimização de servo motores nos servoconversores Atente para a figura.
  • 18. 18 O Torque nominal (CMO) de um motor é determinado pelas seguintes características construtivas do motor. O Torque máximo (Mmáx) é 3 x Mo do motor. Em função da potência do servoconversor utilizado, o Torque máximo que se pode alcançar também poderá ser menor. Os servo motores devem possuir momento de inércia da massa do rotor, menor do que em relação aos motores assíncronos trifásicos, devido às grandes solicitações de dinâmica. Um dos artifícios mais utilizados são os cortes transversais no rotor, através destes cortes reduz se a massa de inércia do rotor. Na tabela 1 é dado um quadro comparativo para um servo motor. Um fator essencial para o uso do servo motores nas aplicações em sejam necessárias velocidade e sincronismo dos eixos é a elevada qualidade e a energia dos ímãs permanentes de Terras-Raras utilizados, que permitem suportar altas sobrecargas sem o risco de desmagnetização, graças também à tecnologia de encapsula mento utilizada para fixá-los ao eixo do motor. Como funciona um servo motor? Os servo motores são máquinas síncronas, compostas de seis polos no estator, de alimentação trifásica, ímãs permanentes Terras-Raras, dispostos linearmente sobre a face do rotor e um sensor analógico chamado resolver para realimentação de posicionamento e velocidade. Sua alimentação, apesar de trifásica, não pode ser efetuada através da rede convencional, pois
  • 19. 19 possui um bobinamento totalmente especial, confeccionado para proporcionar uma alta dinâmica ao motor através de um fluxo eletromagnético totalmente diferente do proporcionado pela rede. Este fluxo eletromagnético só pode ser fornecido pelo servoconversor através de um modelamento matemático que leva em consideração todas as características do servo motor, esta é a razão de apenas ser possível a utilização de servo motores e servoconversores de mesma marca. Só assim é possível fornecer o fluxo mais apropriado para o servo motor ter a melhor dinâmica. Outro importante ponto é a sequencia de fase adotada: em alguns servo motores, a sequencia SERVOMOTOR - SERVOCONVERSOR deve ser observada com atenção, pois a sua inversão causa falha no servoconversor de Monitoração de rotação. Veja a figura 5. Devido a estarmos trabalhando em malha fechada, quando da inversão o servoconversor detecta a incompatibilidade entre os sinais do campo girante do servo motor com os sinais gerados pelo resolver. Desta forma, o servoconversor entende que o campo girante do servo motor está em um sentido e o resolver no sentido oposto, portanto, a sequência U/V/W do servo motor deve ser a mesma sequencia U/V/W do servoconversor. Atente-se também para a utilização de servo motores e servoconversores de mesmo fabricante, pois no modo operacional SERVO, específico para servo motores síncronos, os dados dos servo motores necessários para este modo operacional (SERVO) estão memorizados nos servoconversores, e só assim é possível obter a melhor performance através do modelamento matemático do servo motor. 67,3 60 220  f V RED
  • 20. 20 O que é o Resolver? O resolver é um sistema de realimentação analógico composto por um estator e um rotor, mas seu funcionamento é oposto ao do motor, ou seja, funciona como um gerador. Seu rotor gira através da ação do eixo do rotor do servo motor e faz com que a ação do campo eletromagnético do rotor exerça influência direta sobre o bobinamento do estator do resolver, o qual se encontra subdividido em dois estatores, defasados 90° graus entre si, gerando sinais senoidais que funcionam como realimentação de posição e velocidade para o servoconversor. Observe as figuras. Outro ponto a se ressaltar é o fato do alinhamento do resolver. Por se tratar de um sensor de alta resolução e precisão, o seu alinhamento é algo fundamental para seu perfeito funcionamento, portanto, é aconselhável não mexer em seu sistema de fixação devido à sua complexidade de montagem. Na figura , o alinhamento. Quando comparado a outros sistemas de realimentação disponível no mercado (encoder incremental e encoder absoluto), o resolver tem suas características ressaltadas, principalmente quanto à sua robustez e insensibilidade às vibrações e altas temperaturas. Observe a tabela. Na figura, o encoder incremental. O resolver é um gerador de sinais dos mais resistentes, tanto em sua mecânica, quanto em sua estrutura elétrica. Normalmente os defeitos mais comuns são na parte de ligação:
  • 21. 21 1. Inversão dos canais de sinal; 2. Cabo de sinal inadequado (impedância muito alta); 3. Deslocamento do ponto zero do resolver, este acontece quando pessoal não habilitado retira o resolver na desmontagem do servo motor. O Servoconversor Usamos o termo “Conversor Estático” para designar genericamente circuitos de eletrônica de potência que operam na mudança da tensão e da forma de onda de uma fonte de energia elétrica por meio de uma sequencia de comutações de interruptores estáticos (chaves semicondutoras como tiristores, transistores bipolares, MOSFETs, IGBTs, GTOs, etc). Os circuitos retificadores controlados, circuitos choppers, circuitos inversores e os circuitos conversores de fase (que permitem o acionamento de um motor trifásico a partir de um sistema de alimentação monofásico) são alguns exemplos de conversores estáticos. Usa-se também o termo “Drive”, mas para designar genericamente o equipamento que realiza o acionamento elétrico de motores. Drive é um equipamento para utilização em aplicações industriais nos mais variados segmentos. Os drives são divididos em diversas famílias, por exemplo, conversores de frequência (inversores), softstarters e servoconversores. Os softstarters são equipamentos de eletrônica de potência que atuam como chaves de partida estática, projetadas para acelerar e desacelerar e proteger motores elétricos de indução trifásicos. Os inversores de frequência são equipamentos destinados a controlar e variar a velocidade de motores elétricos de indução trifásicos. Já os servoconversores são equipamentos para utilização em aplicações industriais onde se necessita elevada dinâmica, controle de torque, robustez, precisão de velocidade e posicionamento, contribuindo para o aumento da qualidade e produtividade. A mais recente tecnologia embarcada faz dos servoconversores os equipamentos mais versáteis disponíveis no mercado. Possibilidade de comunicação direta com controladores externos, comunicação nos mais variados meios Fieldbus e possibilidade de associação de múltiplos eixos numa mesma fonte de alimentação, entre outras características, fazem dos servoconversores uma excelente opção no Upgrade de máquinas e equipamentos em geral.
  • 22. 22 Controle de um Servo Motor Para fazer um servo funcionar você deve liga-lo a um receptor (RX) e este receptor deve estar ligado a uma bateria que forneça no mínimo 4,8volts ( não discutiremos aqui uma ligação com Speed Control ). Este receptor deve estar sintonizado a um rádio ( TX ). Em geral um receptor para um aeromodelo elétrico deve ter no mínimo 3 canais ( sendo mais comum encontrarmos os receptores de 4 canais ), mas para os aeromodelos mais simples usamos só 2 servos. Cada servo é ligado a um canal diferente do receptor e recebe um sinal no formato PWM ( Pulse Width Modulation ). Este sinal pode ter 0 Volts ou 6Volts. O circuito de controle do servo fica monitorando este sinal em intervalos de 20ms (mili segundos), se dentro deste intervalo ele percebe uma alteração do sinal de 0v para 6v durante 1ms até 2ms ele altera a posição do seu eixo para coincidir com o sinal que recebeu. Uma vez que o servo recebe um sinal de 1,5ms ( por exemplo ), ele verifica se o potenciômetro encontra-se na posição correspondente, se estiver ele não faz nada. Se o potenciômetro não estiver na posição correspondente ao sinal recebido, o circuito de controle aciona o motor até o potenciômetro estar na posição certa. A direção de rotação do motor do servo vai depender também da posição do potenciômetro, o motor vai girar na direção que mais rápido levar o potenciômetro até a posição certa. Se tentarmos alterar a posição do braço do servo a força, veremos que ele faz uma resistência e tenta manter a posição que lhe foi designada pelo sinal que recebeu. Ele faz isto por que o potenciômetro esta conectado diretamente ao eixo de saída, e detecta
  • 23. 23 qualquer alteração na posição do mesmo. E é isto que faz o servo ser tão importante para nós. Quando mandamos ir para uma posição ele vai e fica lá até receber outra "ordem". Esta "resistência" que o servo faz a uma mudança a força da posição do seu braço, chamamos de Torque. O Torque é a principal característica de um servo. Medimos o torque em kg-cm (Kilo gramas por centímetro ) ou oz-in (Onças por polegadas). Mas o que significa isso? Veja a figura ao lado: Considere que o braço deste servo tem 1cm até o ponto onde é conectado ao peso, e o peso é de 1Kg. O servo consegue manter a posição do seu braço mesmo com o peso puxando p/ baixo sem ceder nem quebrar. Podemos dizer que este servo tem um torque de 1 kg-cm ou 14 oz-in. Se excedermos estes limites provavelmente o servo vai quebrar suas engrenagens. A maioria dos fabricantes de servos vendem conjuntos de engrenagens extras se isto acontecer. Os servos em geral são classificados em categorias, as que em geral nós do mundo dos elétricos usamos são: Standard = São os servos mais comuns. Grandes e robustos pesam em torno de 35gramas. São usados em geral em modelos com envergadura de 1,20m ou mais, onde se necessita de um peso extra para se atingir o CG ideal. São os que usamos em nossas Asas Elétricas. Mini = São menores que o Standard pesando algo entre 20 e 28 gramas. Não são tão usados assim pois podem ser facilmente substituídos por um servo micro. Micro = Eu diria que são os mais usados em aeromodelos elétricos. Pequenos, leves e com um bom torque. Podem variar desde 6 até 20 gramas. Pico = Embora não sejam os menores servos, estão bem próximos. Usados em modelos pequenos para voo impor, ou onde leveza é fundamental. Podemos dizer que todos os fabricantes de servos com exceção da Airtronics respeitam um padrão de conexão. Então você pode usar um servo Hitec num receptor Futaba, um servo Futaba num receptor JR, etc. Embora a pinagem da conexão seja a mesma o chanfro do conector pode variar um pouco, mas nada que impeça você de conecta-lo. Existem diversos fabricantes de servos hoje em dia 90% dos casos eles usam o padrão da Futaba.
  • 24. 24 3 METODOLOGIA A construção do robô aranha visa fazer uso de dois servomotores, uma base de madeirite e barras de alumínio. A montagem do robô pode ser dividida em duas partes: a primeira é a construção da parte estrutural do robô inseto, base e pernas, e, posteriormente, a parte eletromecânica, que se refere à construção dos blocos dos servomotores. Esses servos deverão ser adaptados para rotação contínua, mas devem perder a referência no potenciômetro quando adaptado, só que agora o movimento será transferido para outra haste de transmissão, e ela deverá ser usada como referência para o controle do servomotor. Por isso, esta será fixada ao eixo do potenciômetro, que será o eixo principal do bloco. Deste modo, não conseguiremos controlar precisamente a posição da haste. Onde faz parte de um conjunto de transferência de movimento as pernas, de modo que o torque disponível seja maior, para possibilitar uma correta movimentação do robô inseto. É necessário que se tome bastante cuidado durante a construção para evitar que ele fique mal estruturado e não caminhe corretamente. Começaremos pela montagem estrutural, iremos confeccionar as pernas do robô com quatro barras (perfis) de alumínios quadradas de ¼ polegadas. Os comprimentos destas pernas devem ser proporcionais ao tamanho da base. Sendo assim, cada perna é formada com um conjunto de “anteperna”, que será fixada a base do robô; e um “pé”, que mantém o robô apoiado no chão. As antepernas do par que será diretamente tracionado pelo servomotor terão comprimento de 10 cm enquanto que as do outro par terão 8 cm de comprimento. Nas duas barras de 8 cm faremos os furos a 0,5cm de uma extremidade, para encaixá-la na base, e o outro a 2 cm deste, para posteriormente, encaixarmos uma barra para a transferência de movimento. Nas duas maiores faremos uma sequencia de três furos, um furo a 0,5cm de
  • 25. 25 uma extremidade, para que possamos colocar hastes ligadas ao servomotor de movimentação horizontal; outro á 2 cm do primeiro furo, para encaixa-lo no corpo, e um terceiro á 2 cm do segundo furo, onde será fixada a barra para a transferência do movimento. Além disso, ainda devemos fazer mais um furo em cada barra, do lado perpendicular ao lado onde foram feitos os primeiros furos, a 0,5cm da extremidade oposta, para que possamos posteriormente encaixar os pés, que serão responsáveis por manter o corpo do robô acima do chão. Deve-se lembrar de que o dimensionamento da base e das pernas foi definido aleatoriamente, buscando apenas um tamanho proporcional ao servo motor. A base foi feita de madeirite, suas dimensões são de 20 cm x 8 cm e devem ser feitos furos a 0,5cm de cada lateral, para que possamos encaixar as suas pernas. As antepernas, serão fixadas à base de madeirite, terão dois tamanhos padrões, pois um par será tracionado por um servomotor para que possa se movimentar para frente enquanto que o outro par será movimentado através de barras de transferências de movimento, ligadas às pernas tracionadas pelo servomotor. Onde será presa a base através de um parafuso, que servirão de eixos para as pernas, isso é possível os parafusos proporcionarem movimentos rotacionais dando impulsos para o robô.
  • 26. 26
  • 27. 27 Em seguida, cortaremos duas barras de alumínio de 20 cm de comprimento. Estas barras servirão para a transferência de movimento das pernas que serão tracionadas pelo servomotor responsável pelo movimento horizontal para as outras duas pernas que não terão ligação com o servomotor. Além elas garantem uma melhor estabilidade á estrutura Mecânica. Estas barras, no mínimo, devem possuir o mesmo comprimento da base. Para fazermos os pés utilizamos quatro barras de 7 cm, estes “pés” devem estar bem presos ás antepernas, não podendo se movimentar. Para isso utilizamos arruelas ou arruelas de pressão. Logo em seguida, deve-se ficar ás barras de transferência de movimento, onde se leva em consideração fato de que as hastes se movimentarão. Deixando assim as pernas paralelas umas as outras. Porém, para que o robô possa mover suas pernas para frente e atrás sem patinar, serão feitas pernas de movimento vertical. Onde, as antepernas serão feitas com dimensões de 10 cm de comprimento, será feito três furos, todos na mesma lateral da perna, o primeiro furo será feito a 0,5cm de cada extremidade, onde um furo será destinado a fixar os “pés”, o outro será conectado ao servomotor responsável pela movimentação vertical. Um terceiro furo, localizado a 2.5 cm de distancia do furo destinado ao servomotor, será utilizado para ficar a perna ao corpo do robô através um parafuso com função de eixo.
  • 28. 28 No próximo passo é construir o bloco de fixação dos servomotores de movimentos horizontal e de movimentação vertical, empregando madeira MDF com espessura de 1,5cm, em formato de retângulo de 6cm x 5cm. Assim devemos marcar os encaixes do servomotores, fazendo marcações dos potenciômetros e das engrenagens. Deve-se cortar nos formatos das marcações, depois de pronto a base dos servomotores, deve criar um pino-eixo para o servomotor, onde o seu tamanho irá variar de acordo com o tamanho do potenciômetro usado como eixo, sendo que o tamanho mínimo esta descrito no tutorial sobre bloco padrão para servomotores. Depois de montado o bloco do motor e colocado o eixo do motor e encaixado é preciso fazer um furo no eixo para fixação das engrenagens do motor. O potenciômetro que colocamos para fora da estrutura do bloco do motor é para informar a posição que se encontra a maior engrenagem. Assim ao termino do bloco de movimento horizontal, teremos que desenvolver o bloco de movimentação vertical, que possui o mesmo princípio de montagem, entretanto devemos ter cuidado para que não ocorra o desalinhamento dos blocos assim causando problemas com a movimentação do robô, assim montado um bloco de motor para o movimento das pernas centrais terá que programa-los com microcontrolador, sendo assim elaborando uma programação. Porém, temos que fazer com que o servomotor movimente-se de forma continua para que ele imprima o movimento necessário para que o robô movimente-se. Durante a montagem será acrescentado sensores para que possa gerar segurança no controle do robô aranha, como por exemplo, sensor de presença, giroscópio e etc. Circuito e seu funcionamento: para que o servomortor funcione de forma adequada, faz-se necessário o envio de um sinal temporizado ao circuito de realimentação PWM (pulse width modulation). O PWM é uma forma de controle de tensão por recorte, onde os transistores de potência são ligados ou bloqueados de modo a obter na saída o valor de tensão desejada (controlador de tensão). Quando o pequeno motor de corrente contínua (DC), recebe PWM adequado, realiza o movimento baseado na variação de resistência de um potenciômetro conectado ao eixo do motor de corrente contínua. A variação de resistência desse que ficou no lugar do potenciômetro informa ao circuito a posição e a direção do eixo pequeno. Assim, a realização do controle de posição de um servomotor diz respeito á largura de pulso enviado ao seu circuito eletrônico de realimentação. Para realizar o controle dos servos via USB utilizam-se microcontroladores, isso se baseia em sua menor complexidade, seu menor custo e atender os requisitos mínimos de projeto. Onde a comunicação do PIC, no qual um endereço do servo é enviado e, em seguida, uma nova posição. Desta forma é possível posicionar qualquer servo enviando ao microcontrolador apenas dois bytes. Segue Abaixo Passo a Passo de como fazer a placa de circuito impresso: 1. Passo – Desenhe o lay-out do circuito utilizando qualquer software para circuitos eletrônicos; Neste projeto utilizou-se Circuito EAGLE. Imprima com impressora laser o desenho em uma folha de papel fotográfico para impressora jato de tinta ( neste projeto utilizou-se o papel EPSON código S041117) e verificou-se o tamanho e as trilhas estão no tamanho real do circuito, segue abaixo imagens das placas desenhas pelo programa.
  • 29. 29
  • 30. 30 2. Passo- Prepare a placa limpando a superfície de cobre de sujeira, oxidação e gordura, utilize algum produto químico ou se preferir, passe lã de aço que dá o mesmo resultado. Coloque o papel com a face impressa sobre a placa já cortada no tamanho exato. 3. Passo- Com um ferro de passar roupas bem quentes, pressione o papel sobre a placa, não é necessário friccionar, apenas faça pressão por aproximadamente dois minutos. Escolha bem a superfície onde vai apoiar placa, evitando estragar alguma superfície com o calor do ferro. Cuidado também para não exagerar ao fazer pressão e acabar danificando o ferro de passar. 4. Passo- Feito isso, o toner impresso no papel estará preso no cobre da placa. Não caia na tentação de puxar o papel nesse momento; calma, ainda restam alguns passos. Prepare uma pequena vasilha com água quente e um pouco de detergente, quantidade suficiente para cobrir a placa. Mergulhe sua placa na água e aguarde cerca de trinta minutos. Isso irá amolecer o papel e facilitar sua retirada. 5. Passo- Agora retire o papel. Friccione as pontas dos dedos sobre ele, não é preciso muita força, pois o papel molhado é fácil de sair. Se dor preciso molhe algumas vezes a placa na água da panela e fazendo movimentos com os dedos até retirar todo o papel. 6. Passo- Proceda a corrosão de cobre não protegido pelo toner. Após a corrosão ele é retirado com o auxilio mais uma vez da lã de aço. Passe uma fina camada de verniz protetor, perfure a placa e ela está pronta para a inserção dos componentes eletrônicos e soldagem dos mesmos. Segue abaixo a imagem da placa pronta.
  • 31. 31 Programação: O programa do Robô Inseto foi desenvolvido em linguagem CCS e compilado o arquivo hex. No MPLAB. O conceito do movimento, todo o resto é simples e segue o conceito de como ele se locomove. Analisando a figura abaixo você perceberá que um dos servos atua levantando um dos lados do robô (patas centrais). Isso faz com que duas patas “externas” fiquem em contato com o solo e outras duas não. As duas patas em contato com o solo são controladas por outro servo que faz com que as mesmas mova-se para frente ou para trás. A figura abaixo demonstra a sequencia de movimentos para o Robô. Levantando um dos lados (movimento 1 e 2) e movendo as patas “externas” e depois levantando o outro lado e movendo novamente as patas “externas” (movimento 3 e 4) tem-se o movimento (à frente). Invertendo esta sequencia tem-se o movimento contrário (para trás)
  • 32. 32 Alguns robôs de mesmo tipo têm um número maior de servos e o desvio torna-se uma tarefa mais fácil. No caso do robô que eu desenvolvi o desvio é um pouco mais complexo. Primeiro o robô precisa ser “elevado” em um de seus lados. Depois ele precisa ser movido para traz (movimentos 1 e 2). Após este movimento o robô terá uma pequena inclinação para o lado. Então centralizamos as pernas de elevação e movimentamos as patas “externas” novamente para o lado contrário (movimentos 3 e 4). Neste momento o robô patina, pois todas as patas estão em contato com o solo. Novamente a operação (1, 2, 3 e 4) é executada até que o movimento seja suficiente para o desvio. A figura abaixo você tem o fluxograma que demonstra o programa. O programa também foi ricamente ilustrado. Estude-o para compreender melhor o funcionamento do conjunto.
  • 33. 33 Programação em C #include <18F4550.h> // Arquivo de pré-processamento para o modelo 18F4550 #fusesHSPLL,PLL5,USBDIV,CPUDIV1,VREGEN,NOWDT,NOPROTECT,NOLVP,NOD EBUG //Configurações de fuses #use delay(clock=48000000) // Clock em 48MHz (Cristal de 20MHz e PLL habilitado) #define CODE_START 0x1000 // Endereço inicial de memória para o programa de usuário #build(reset=CODE_START, interrupt=CODE_START+0x08) //Posições de memória para RESET e INTERRUPÇÃO #org 0, CODE_START-1 {} // Reserva espaço de memória para o bootloader #include <usb_san_cdc.h> // Biblioteca para comunicação USB (Emula Serial) // é o protocolo cdc para comunicação USB ponto a ponto USB(é o meio físico) int estado; // Declaraçao da varíável estado (Inteiro) long int contador; // Variavel contador de pulsos void main () { usb_cdc_init(); // Inicializa o protocolo CDC usb_init(); // Inicializa o periférico USB usb_task(); // Une o periférico com USB do PC // setup_psp(PSP_DISABLED); // Desativa periférico PSP multiplexado com o PORTD // setup_CCP1(CCP_OFF); // Desativa módulo CCP compartilhado com o PORTD // delay_ms(100); // Aguarada ativação dos pull-ups // output_B(0); // Desativa todos os bits da porta B estado=1; // Define o estado inicial //contador=0; delay_ms(1000); while (true) // Loop infinito { switch (estado) // Verifica o estado atual { CASE 1:
  • 34. 34 while(true) // while 1 { for(estado=0; estado<=20; estado++) //horario { output_high(pin_b7); output_high(pin_b6); delay_ms(2); output_low(pin_b7); output_low(pin_b6); delay_ms(18); } output_low(pin_b7); output_low(pin_b6); delay_ms(1000); for(estado=0; estado<=20; estado++) // ante-Horario { output_high(pin_b7); output_high(pin_b6); delay_ms(1); output_low(pin_b7); output_low(pin_b6); delay_ms(19); } output_low(pin_b7); output_low(pin_b6); delay_ms(1000); if (input(pin_b0) == 1) { estado=2; break; } } break; CASE 2: while(true) // while 2
  • 35. 35 { for(estado=0; estado<=20; estado++) //horario { output_high(pin_b7); delay_ms(1); output_low(pin_b7); delay_ms(19); output_high(pin_b6); delay_ms(2); output_low(pin_b6); delay_ms(2); } output_low(pin_b7); output_low(pin_b6); delay_ms(1000); for(estado=0; estado<=20; estado++) // ante-Horario { output_high(pin_b7); delay_ms(2); output_low(pin_b7); delay_ms(18); output_high(pin_b6); delay_ms(1); output_low(pin_b6); delay_ms(1); } output_low(pin_b7); output_low(pin_b6); delay_ms(1000); if( input(pin_b0) == 1 ) { estado=2; break; } } // while 2
  • 36. 36 break; } // switch } // while 1 } // global 4. RESULTADOS E DISCUSSÕES Inicialmente, começamos com a montagem do robô pela parte estrutural, não tivemos muitos problemas apenas com as adaptações para com ele, devido ter muitas partes pequenas na sua estrutura. Percebemos que durante a montagem deste robô, sua aplicação seria variada para uma indústria, apenas fazendo adaptações mecânicas. Mas durante o seu desenvolvimento tivemos alguns problemas, como exemplos, alterações onde em vez de utilizar engrenagens trocamos por um eixo de transmissão. Houve a alteração do motor, onde a programação inicia-se com um servo motor limitado a 90 graus positivo e negativo, e passou a funcionar como um motor de DC, girando a 360 sem interrupção e perdendo a sua referencia que seria a precisão. Contudo, depois de alterado perdemos a precisão no servomotor, então tivemos que utilizar uma frequência de 50Hz a 60Hz na programação, assim complementando como o contador. Para rodar em sentido anti-horário é só manter um pulso de 2ms e no sentido horário 1 ms. Mas como retiramos a precisão do motor, tivemos que realizar uma serie de testes para ajustá-lo para a sua determinada função. Sendo assim passamos a alterar a sua estrutura inúmeras vezes ate que chegamos a um ponto demasiado que atingiu as nossas expectativas. Como dito anteriormente o foco da primeira parte deste trabalho era a montagem do protótipo do robô, onde assim poderíamos partir com a programação. Mas como houve uma serie de problemas com ela, descreverei as mais importantes. Lembrando que fomos afinco em seis bibliografias e alterando-as para obter o resultado final desejado. Descrito abaixo temos uma serie de problemas com as patas centrais, onde houve adaptações e mudanças no projeto. 1. Foi feita uma montagem baseado em engrenagens na transmissão do robô, mas como a peça a ser adquirida era muito pequena, e de difícil acesso foi impossível realizar esta montagem do robô; 2. Como segunda ideia trabalhou como uma haste de transmissão, onde substituiria uma das engrenagens, primordialmente esta ideia foi produtiva, mas quando feito e testada na prática, descobrimos que nosso protótipo estava descentralizado, então sabíamos que teríamos que utilizar haste de transmissão mas adaptada ao nosso projeto;
  • 37. 37 3. Na terceira fase do protótipo fizemos uma junção da haste de transmissão e adaptamos as patas centrais para que ela armazene energia potencial gravitacional, mas falhamos outra vez, devido que o torque no motor não foi o suficiente para que ele levante um lado; 4. A ultima opção que tentamos foi enfim criar algo semelhante a uma “gangorra” pois quando uma perna estivesse no alto a outra teria que estar no chão sustentando a outra, inicialmente foi feito o teste com arame de 3 mm, mas para que tivesse um ângulo de inclinação perfeito passamos a adotar uma barra fina de alumínio, onde houve sucesso, em levantar a as patas centrais; segue abaixo uma ilustração desta parte testada e pronta. Lembrando que o progresso com a programação do projeto seguiu junto com a sua estrutura e sendo assim, cada vez que houve alteração da estrutura, tivemos que alterar sua programação, para que o motor não trave ou não exija mais que a sua potência permita. Contudo nos primórdio da programação houve um erro, que quando testávamos o motor ele rodava e não tinha uma posição única, então, percebemos que estávamos trabalhando fora da sua frequência permitida, então ele perdia a referencia e entrava em um loop continuo. Porém, depois de resolvido estes problemas conseguiu-se fazer com que o robô se locomova, sendo assim o objetivo parcial do projeto foi atingido com sucesso.
  • 38. 38 5.CONCLUSÕES Através das analises feitas com o robô percebeu-se que o produto final atingiu todos os requisitos selecionados até este momento, porém é bom salientar que cada tipo de robô atinge uma função especifica, sendo assim este antes de fazer qualquer outra função tem de ser adaptado mecanicamente. Com relação á funcionalidade e operacionalidade do robô veio apresentar uma ótima locomoção e também operacionalidade simples e fácil, mas apresentando problemas específicos na sua montagem, onde a estratégia utilizada mostrou-se eficaz na transmissão e controle dos movimentos, mesmo os movimentos sincronizados. O controle utilizado poderá ser mais lento que o utilizado atualmente na robótica possui métodos que podem facilitar o desenvolvimento e controle de aplicações robóticas. O programa apresentado pode ser modificado de forma a possuir uma interpretação mais clara ou que os usuários podem controlar os servos motores manualmente. Ele também pode ser alterado de modo a proporcionar um melhor funcionamento, como manter o robô na posição de repouso ao pressionar um botão parar. Outra alteração que pode ser feita é a utilização do teclado do KIT ou de chaves digitais ligadas ás entradas Digitais para controlar o movimento do robô. É possível fazer uma versão automática empregando sensores para detectar o caminho a ser feito. A mecânica e a estrutura do robô podem sofrer grandes alterações, de modo a facilitar a sua montagem ou tornar seus movimentos mais eficientes. É possível também acrescentar garras ou outras estruturas mecânicas diversas. Como comentário final temos a dizer que a mecatrônica nos trás facilidade a uma serie de adaptações de maquinas para o serviço industrial, porém ainda atualmente encontra- se com um custeio muito elevado, sendo assim não estando em contra para pequenas e medias empresas as adquirirem, uma das soluções é desenvolver equipamentos com materiais reutilizáveis para baixar seu preço. Porém assim compensando em eficiência e montagem, apenas adaptando-o para realizar uma única função. 6 Referências Bibliográficas:  Souza, D. J. e LAVINIA, C. N. Conectando o PIC - Recursos Avançados, 2003, 61-95p.  Zanco, W. S. Microcontroladores PIC18F4550A - Uma abordagem prática e objetiva, São Paulo: 19p.  Pereira, F. Microcontroladores PIC - Técnicas Avançadas, 2003, São Paulo: 192p.  Manzano, J. A. N. G. Fundamentos em Programação Assembly para computadores IBM-PC a partir dos microprocessadores Intel 8086/8088, 2003, 320- 357p.  Stallings, W, Arquitetura e Organização de Computadores. 1998. São Paulo: 470p.
  • 39. 39  Torres, Fernando E; Martins, Henrique R; Sistemas Microcontrolados. Disponivel:http://www.decom.ufop.br/lex/arquivos/sof_bas_EC/Apostila_PICMInas.pdf, 44- 49p;  Marco, Antonio; Apostila: Programação de microcontroladores PIC usando a linguagem C; Centro Federal de Educação Tecnologia do Espírito Santo; 2006; Disponível: http://www.pictronics.com.br/downloads/apostilas/Apostila-Pic-C.pdf; 1-3p;  MOHAN, Ned – UNDELAND Tore M. – ROBBINS Willian P. Power electronics, Converters, Applications and Design, 2ª ed. John Willey & Sons, Inc. U.S.A, 1995.  BOSE B. K. Introduction to Microcomputer Control. General Electric Company  MICROCHIP Datasheet microcontrolador PIC18F4550 - [online]. Disponível em URL: http://www.microchip.com/. [capturado em outubro de 2013].