Corpo relatorio

801 visualizações

Publicada em

Publicada em: Engenharia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
801
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
16
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Corpo relatorio

  1. 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. 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. 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. 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. 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. 6
  7. 7. 7
  8. 8. 8
  9. 9. 9
  10. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 26
  27. 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. 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. 29
  30. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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].

×