71
UNIVERSIDADE POSITIVO NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS CURSO DE ENGENHARIA DA COMPUTAÇÃO EVELYN YANINNE RUIZ DIAZ CANDIA RICARDO MORAES MUNIZ DA SILVA Interface de Comunicação e Reconfiguração de Microcontrolador em Campo que utiliza Controle Robótico Trabalho de Conclusão de Curso Prof. Mauricio Perretto Orientador Curitiba, novembro de 2009.

Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

Embed Size (px)

Citation preview

Page 1: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

UNIVERSIDADE POSITIVO

NÚCLEO DE CIÊNCIAS EXATAS E TECNOLÓGICAS

CURSO DE ENGENHARIA DA COMPUTAÇÃO

EVELYN YANINNE RUIZ DIAZ CANDIA

RICARDO MORAES MUNIZ DA SILVA

Interface de Comunicação e Reconfiguração de Microcontrolador

em Campo que utiliza Controle Robótico

Trabalho de Conclusão de Curso

Prof. Mauricio Perretto

Orientador

Curitiba, novembro de 2009.

Page 2: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

UNIVERSIDADE POSITIVO

Reitor: Prof. Oriovisto Guimarães

Vice-Reitor: Prof. José Pio Martins

Pró-Reitor de Graduação: Prof. Renato Casagrande

Diretor do Núcleo de Ciências Exatas e Tecnológicas: Prof. Marcos José Tozzi

Coordenador do Curso de Engenharia da Computação: Prof. Edson Pedro Ferlin

Page 3: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

TERMO DE APROVAÇÃO

Evelyn Yaninne Ruiz Diaz Candia

Ricardo Moraes Muniz da Silva

Interface de Comunicação e Reconfiguração de Microcontrolador em

Campo que utiliza Controle Robótico

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

Computação da Universidade Positivo, pela seguinte banca examinadora:

Prof. Mauricio Perretto (Orientador)

Prof. Ederson Cichaczewski (Membro)

Prof. Edson Pedro Ferlin (Membro)

Curitiba, 14 de Dezembro de 2009.

Page 4: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

Agradecimentos

Agradecemos a DEUS, pois foi ele que nos deu forças e nos acompanhou nesta

batalha, sempre nos guiando para o melhor caminho.

Agradecemos aos nossos pais por toda a força, motivação e o apoio para concluir

nossas metas e por nos ensinarem a sermos pessoas de valor. Amamos muito vocês!

Agradecemos também a todos os professores do curso, alguns não estão mais na

universidade, mesmo assim, nos ajudaram muito e nos motivaram enormemente,

sempre conversando, trocando idéias, e apresentando novos desafios a serem vencidos.

Destacamos em especial o nosso Orientador Prof. Mauricio Perretto, por toda ajuda

e orientação no decorrer do curso, Prof. Alessandro Zimmer, que tivemos a

oportunidade de viajar para o Japão nos mostrando um novo mundo de possibilidades

acadêmicas e profissionais.

Evelyn Yaninne Ruiz Diaz Candia

Agradeço por todo o carinho recebido dos meus irmãos, primos, tios e avôs, pois

apesar de ter perdido muitos momentos juntos, sempre senti o calor e a união que tanto

caracteriza a nossa família.

Ao meu melhor amigo Moraes, no fim concluímos juntos este caminho,

compartilhando muitos bons momentos.

A todos os meus amigos tanto do Paraguai como os amigos que conheci em

Curitiba, que tornaram minha vida mais alegre.

Ao Professor Marcelo Mikosz, pois além de professor também foi amigo e sou

muito grata por ter estendido a mão sempre que precisei.

Ricardo Moraes Muniz da Silva

Agradeço a minha melhor amiga Evelyn, companheira de TCC que enfrentou

comigo muitas batalhas, muitas delas dificílimas, mas sempre ao meu lado, e no fim

conseguimos vencê-las.

A todos os meus amigos que me motivaram e apoiaram neste caminho de me tornar

engenheiro da computação, cito em especial o Sexteto Sinistro e a SWZ Team.

A minha família que sempre me apoiou na minha escolha de profissão e no caminho

que decidi trilhar.

Aos meus colegas e amigos da universidade, por toda ajuda e companheirismo.

Page 5: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

SUMÁRIO

LISTA DE ABREVIATURAS E SIGLAS .............................................................. 8

LISTA DE FIGURAS ............................................................................................. 10

LISTA DE TABELAS ............................................................................................ 11

RESUMO ................................................................................................................. 12

ABSTRACT ............................................................................................................. 13

CAPÍTULO 1. INTRODUÇÃO ............................................................................. 14

CAPÍTULO 2. ESTADO DA ARTE ..................................................................... 15 2.1. Sistemas Remotos .......................................................................................... 15

2.2. Microcontrolador ........................................................................................... 16

2.3. Microcontroladores PIC ................................................................................. 17

2.3.1. Apresentando o PIC18F452 ........................................................................ 17

2.3.1.1. O diagrama de pinos ................................................................................ 17

2.3.1.2. O Diagrama de Blocos ............................................................................ 18

2.3.1.3. Organização da Memória de Programa .................................................. 19

2.3.1.4. Memória de Dados ................................................................................... 20

2.3.2. Apresentando o PIC18F4550 ...................................................................... 21

2.3.2.1. O diagrama de Pinos ............................................................................... 21

2.3.2.2. O Diagrama de Blocos ............................................................................ 22

2.3.2.3. Organização da Memória de Programa .................................................. 23

2.3.2.4. Memória de Dados ................................................................................... 24

2.4 Memória EEPROM ......................................................................................... 25

2.4.1 Memória 24FC512 ....................................................................................... 25

2.4.2. Diagrama de Pinos ...................................................................................... 25

2.4.3. O Diagrama de Blocos ................................................................................ 25

2.4.4. Organização da Memória de Programa/Endereçamento ............................ 26

2.5. Interface de Comunicação ............................................................................. 26

2.5.1. Características ............................................................................................. 27

2.5.2. Modo de Operação ...................................................................................... 27

Page 6: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

2.5.3. Definição dos Pinos e Consumo ................................................................. 27

2.5.3.1: Definição dos Pinos do Módulo de Transmissão .................................... 27

2.5.3.1.1. Consumo de Corrente do Módulo de Transmissão .............................. 27

2.5.3.2: Definição dos Pinos do Módulo de Recepção ......................................... 28

2.5.3.2.1. Consumo de Corrente do Módulo de Recepção ................................... 28

2.5.4. Calibração dos Módulos de Comunicação .................................................. 28

2.5.5. Aplicações ................................................................................................... 28

2.6. Linguagem de Desenvolvimento ................................................................... 28

2.6.1. A Linguagem C ........................................................................................... 28

2.6.2. Linguagem Assembly .................................................................................. 29

2.6.3. Software MPLAB ....................................................................................... 29

2.6.3.1. Arquivo Intel Hex ..................................................................................... 29

2.7. Protocolos de Comunicação ........................................................................... 30

2.7.1. Protocolo SPI .............................................................................................. 30

2.7.2. Protocolo I2C ............................................................................................... 30

2.7.3. Protocolo de gravação ICSP ....................................................................... 30

2.7.3.1. Bits de configuração ................................................................................ 31

2.7.3.2. Registradores de Controle ....................................................................... 32

2.7.3.2.1. Tablat .................................................................................................... 32

2.7.3.2.2. TBLPTR ................................................................................................ 32

2.7.3.3. Modo Gravação ....................................................................................... 32

2.7.3.4. Low Voltage ICSP Programming ............................................................ 32

2.7.3.5. 4-Bits Serial Instruction ........................................................................... 32

2.7.3.6. Pseudo-Comandos ................................................................................... 33

2.7.3.7. Seqüência de Programação ..................................................................... 34

2.7.3.8. Fluxogramas ............................................................................................ 34

CAPÍTULO 3. ESPECIFICAÇÃO DO PROJETO ............................................ 35 3.1. Descrição Geral ............................................................................................ 35

3.2. Especificação de Hardware ........................................................................... 35

3.2.1. Módulo Base ............................................................................................... 35

3.2.2. Módulo Robótico ....................................................................................... 36

3.2.3. Diagrama em blocos do módulo Robótico. ............................................. 37

3.2.4. Diagrama em blocos do circuito do módulo robótico. ........................... 38

3.3. Especificação de Software ............................................................................. 39

3.3.1. Fluxograma do Software no PC .................................................................. 39

3.3.2. Diagrama de Caso de Uso ........................................................................... 40

3.3.3. Tela do Software do PC .............................................................................. 40

3.3.4. Exemplo de Programa a ser decodificado e enviado .................................. 41

3.3.5. Exemplo do Programa decodificado ........................................................... 41

3.3.6. Protocolo de Transmissão ........................................................................... 42

3.3.7. Protocolo ICSP ........................................................................................... 42

3.3.8. Fluxograma de Detecção de obstáculos ...................................................... 42

3.4. Vantagens do Projeto ..................................................................................... 43

3.5. Desvantagens do Projeto ................................................................................ 43

3.6. Tabela de Custos ............................................................................................ 43

3.7. Cronograma de Desenvolvimento ................................................................. 43

Page 7: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

CAPÍTULO 4. VALIDAÇÃO E RESULTADOS ................................................ 44 4.1. Validação dos Motores .................................................................................. 44

4.2. Detecção de distância ..................................................................................... 47

4.3. Comunicação ................................................................................................. 47

4.4. Protocolo ICSP .............................................................................................. 48

4.5. Validação do Recebimento e Gravação na Memória ..................................... 49

4.6. Problemas Encontrados .................................................................................. 51

4.6.1 Sensores Ópticos .......................................................................................... 51

4.6.2. Reconhecimento de Comandos para os Motores ........................................ 51

4.6.3. Sincronia das Antenas ................................................................................. 52

CAPÍTULO 5. CONCLUSÃO ............................................................................... 55

CAPÍTULO 6. REFERÊNCIAS ............................................................................ 56

ANEXO A – DIAGRAMAS ESQUEMÁTICOS ................................................. 58

ANEXO B – FLUXOGRAMAS ............................................................................. 63

ANEXO C – CÓDIGO DO PROTOCOLO ICSP ............................................... 65

ANEXO D – TABELA DE CUSTOS .................................................................... 68

ANEXO E – CRONOGRAMA .............................................................................. 70

ANEXO F – ARTIGO .............................. ERRO! INDICADOR NÃO DEFINIDO.

ANEXO G – MANUAL ............................ ERRO! INDICADOR NÃO DEFINIDO.

APÊNDICE A – FORMATO INTEL HEX ................. ERRO! INDICADOR NÃO

DEFINIDO.

Page 8: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

LISTA DE ABREVIATURAS E SIGLAS

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

UP Universidade Positivo

ICSP In-circuit Serial Programming

MCU/µC Microcontrolador

E/S Entrada/Saída

USB Universal Serial Bus

MHz Mega Hertz

TV Televisão

BIOS Basic Input/Output System

PIC Peripheral Interface Controller

RISC Reduced Instruction Set Computer

RAM Random Access Memory

EEPROM Electrically-Erasable Programmable Read-Only Memory

PWM Pulse-Width Modulation

A/D Analógico/Digital.

CAN Bus Controller Area Network

I2C Inter-Intergrated Circuit

SPI Serial Peripheral Interface

SDA Serial Data

SCL Serial Clock

MHz Mega Hertz

GHz Giga Hertz

PC Personal Computer

RF Radio Frequency

TX Transmission

RX Receiver

RS-232 Recommended Standard 232

Page 9: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

mA Mili Ampere

DC Direct Current

PGD ICSP Programming Data Pin

PGC ICSP Programming Clock Pin

PGM Low Voltage ICSP Programming Enable Pin

LVP Low Volt Programming

+Vdd Power

-Vss Ground

MCLR Master Clear (input)

Vpp Tensão acima de 13 volts.

A Ampere

rpm Rotações Por Minuto

kgf/cm Kilograma Força Por Centímetro Quadrado.

m/s Metro Por Segundo

cm Centímetro

m Metro

lux Luminious Emittance

PDN Power Down

GCC GNU Compiler Collection

GNU Sistema Operacional Baseado em Unix

Unix Sistema Operacional

IDE Integrated Development Environment

Baud Symbols per second or Pulses per second.

PDA Personal Digital Assistant

OTA Over The Air programming

FOTA Firmware Over The Air programming

Page 10: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

LISTA DE FIGURAS

Figura 2. 1: Diagrama de pinos DIP do microcontrolador PIC18F452. ......................... 18 Figura 2. 2: Diagrama em blocos do PIC18F452. .......................................................... 18

Figura 2. 3: Organização da Memória do PIC18F452.................................................... 19 Figura 2. 4: Memória de Dados do PIC18F452. ............................................................ 20 Figura 2. 5: Diagrama de pinos DIP do microcontrolador PIC18F4550. ....................... 21 Figura 2. 6: Diagrama em Blocos do PIC18F4550. ....................................................... 22 Figura 2. 7: Organização da Memória do PIC18F4550.................................................. 23

Figura 2. 8: Memória de Dados do PIC18F4550. .......................................................... 24

Figura 2. 9: Diagrama de Pinos da Memória 24FC512. ................................................. 25 Figura 2. 10: Diagrama de Blocos da Memória 24FC512. ............................................. 26 Figura 2. 11: Organização da Memória 24FC512. ......................................................... 26

Figura 2. 12: Módulo Transmissor 315MHz/433MHz. .................................................. 27 Figura 2. 13: Módulo Receptor 315MHz/433MHz. ....................................................... 28

Figura 2. 14: Registrador de Configuração 4 Low (CONFIG4L)................................... 31

Figura 3. 1: Interação entre o computador, que envia a nova configuração para o módulo

robótico microcontrolado. .............................................................................................. 35 Figura 3. 2: Diagrama em blocos do computador com a placa responsável pela

comunicação com o módulo robótico. ............................................................................ 36

Figura 3. 3: Tamanho do pacote de dados. ..................................................................... 36 Figura 3. 4: Comunicação entre os microcontroladores PIC. ......................................... 37

Figura 3. 5: Diagrama em Blocos do Módulo Robótico. ............................................... 37 Figura 3. 6: Diagrama em blocos do circuito do módulo robótico. ................................ 38 Figura 3. 7: Fluxograma do software no PC. .................................................................. 39 Figura 3. 8: Diagrama de Caso de Uso. .......................................................................... 40

Figura 3. 9: Tela do software para PC. ........................................................................... 40 Figura 3. 10: Fluxograma de detecção de obstáculos. .................................................... 42

Figura 4. 1: Interação entre o módulo base e o módulo robótico. .................................. 44 Figura 4. 2: Esquemático do funcionamento do motor no software Proteus. ................. 45 Figura 4. 3: Sistema embarcado do módulo robótico. .................................................... 46 Figura 4. 4: Módulo Robótico. ....................................................................................... 46 Figura 4. 5: Exemplo de envio de um caractere. ............................................................ 49

Figura 4. 6: Programa IC-PROG. ................................................................................... 50 Figura 4. 7: Informações gravadas na memória. ............................................................ 50 Figura 4. 8: Interferência no microcontrolador. ............................................................. 51 Figura 4. 9: Sinal sem interferência. ............................................................................... 52 Figura 4. 10: Módulo base. ............................................................................................. 52

Figura 4. 11: Antenas fora de sincronia. ......................................................................... 53 Figura 4. 12: Antenas sincronizadas. .............................................................................. 54

Page 11: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

LISTA DE TABELAS

Tabela 2. 1: Definição dos Pinos do Módulo de Transmissão. ...................................... 27

Tabela 2. 2: Consumo de Corrente do Módulo de Transmissão. ................................... 27 Tabela 2. 3: Definição dos Pinos do Módulo Receptor. ................................................. 28 Tabela 2. 4: Consumo de Corrente do Módulo Receptor. .............................................. 28 Tabela 2. 5: Descrição dos pinos no modo gravação. .................................................... 32 Tabela 2. 6: Instruções Especiais para Execução de Instruções Seriais e ICSP. ............ 33

Tabela 2. 7: Mapeamento de Pseudo Comandos ICSP. ................................................. 33

Tabela 3. 1: Descrição das funcionalidades de cada microcontrolador. ......................... 38 Tabela 3. 2: Detalhes do Pacote a ser Transmitido......................................................... 42 Tabela 4. 1: Modelos de motores avaliados para o projeto. ........................................... 45

Tabela 4. 2: Relação entre iluminação do objeto a ser detectado e distância de detecção

do circuito desenvolvido. ................................................................................................ 47

Tabela 4. 3: Nível de intensidade da luz em diversos ambientes. .................................. 47 Tabela 4. 4: Resultado dos testes de distância máxima de comunicação entre os

módulos. ......................................................................................................................... 48

Page 12: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

RESUMO

O presente projeto trata do desenvolvimento de um sistema de configuração remota

de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming),

com a transmissão dos dados feita via rádio frequência. Para isto é proposta uma

metodologia inovadora, que visa à otimização do tempo e do custo na gravação de

microcontroladores PIC (Peripheral Interface Controller), pois este é feito

remotamente.

Tem-se grande aplicabilidade nas mais diversas áreas como, por exemplo, na

comunicação entre vários módulos robóticos, facultando a alteração da programação

dos mesmos à distância, a fim de realizar tarefas distintas. Pode ser aplicado também no

ambiente educacional, a fim de demonstrar o uso conjunto de diversas tecnologias

embarcadas. Obtém-se desta forma uma maior praticidade, visto que o módulo robótico

que contém o sistema microcontrolado é autônomo e a transferência de dados é feita

sem a necessidade dos kits convencionais de gravação normalmente utilizados.

Este projeto retrata as diferentes tecnologias utilizadas desde o protótipo funcional

chamado de módulo robótico, assim como linguagens, layouts e protocolos

desenvolvidos.

Palavras-Chave: Protocolo ICSP, Microcontrolador, Radio Freqüência, Sistema

Embarcado, Módulo Robótico Autônomo.

Page 13: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

ABSTRACT

This project presents the development of a micro-controlled system of remote

configuration through ICSP (In-circuit Serial Programming) protocol, using radio

frequency for data transmission to robots. This innovative methodology aims the

optimization of time and cost to remotely write in microcontrollers PIC (Peripheral

Interface Controller) used in robotics.

This proposal may be used with advantages in applications as communication with

robotic modules, facilitating program upgrades or modification at a distance. It can also

be applied in an educational environment, in order to demonstrate the use of diverse

embedded technologies. Given that the proposed robotic module contains a

microprocessor reprogrammable at a distance, it becomes independent and the

transference of data may be made without the conventional necessity of writing kits

normally used.

This project depicts the different technologies used since the working prototype

called a robotic module, as well as languages, layouts and protocols developed.

Key Words: ICSP Protocol, Microcontroller, Radio Frequency, Embedded

System, Autonomous Robotic Module.

Page 14: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

14

CAPÍTULO 1. INTRODUÇÃO

Cada vez mais os sistemas embarcados vêm sendo utilizados no desenvolvimento de

inúmeras aplicações. Os sistemas embarcados são circuitos eletrônicos, normalmente

digitais que utilizam microcontroladores, desenvolvidos para executar ações que

necessitem de algum tipo de processamento. Geralmente, estes sistemas também são

desenvolvidos com uma interface com o usuário, permitindo, desta forma, a entrada de

informações e o acompanhamento da tarefa executada.

Uma das grandes áreas de atuação dos sistemas embarcados é na robótica, estando

presentes não apenas nos robôs de grande porte utilizados na indústria, mas também

estão presentes no desenvolvimento de robôs de pequeno porte, que podem ser usados

em tarefas cotidianas, como por Rueda (2005). Quanto a aplicações profissionais podem

ser citados, entre outros, o uso de robôs para a limpeza de túneis e na detecção de

explosivos, utilizados por empresas e pela polícia (BROOKS, 2002).

O desenvolvimento de sistemas embarcados é feito usualmente em laboratório,

seguido por extensivos protocolos de teste e avaliação do firmware do microcontrolador

que será responsável por executar o processamento dos sinais e pelo controle dos

atuadores. Tal procedimento deve ser seguido, pois a partir do momento que o sistema

embarcado é comercializado não é possível efetuar nenhuma alteração deste. Caso o

código desenvolvido contenha erros, os produtos deverão retornar a empresa para a

correção do problema.

Um método que vem sendo utilizado em larga escala é o ICSP (In-circuit Serial

Programming) que permite a gravação do microcontrolador em campo. Este sistema

diminui o esforço de retirada física do microcontrolador, facilitando a correção de erros,

porém ainda é necessário que o técnico se encaminhe à localização do sistema para

efetuar sua correção (PEREIRA, 2002).

Este projeto tem como principal característica a união destes métodos, ou seja, a

combinação do ICSP com sistemas embarcados por meio da introdução de um sistema

de gravação remoto, eliminando a necessidade de remoção do microcontrolador do

circuito e facilitando a correção de eventuais problemas.

Page 15: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

15

CAPÍTULO 2. ESTADO DA ARTE

Atualmente na literatura não foram encontrados trabalhos em desenvolvimento que

realizem a regravação a distância de um programa em um sistema embarcado com

microcontroladores PIC utilizando o protocolo de gravação ICSP. Por este motivo, na

seqüência serão apresentados alguns trabalhos que servem de base de referência para o

estudo atualmente em curso.

Segundo (KAMIMURA, 2005), módulos robóticos são peças individuais que se

deslocam numa determinada área com um objetivo específico sem a intervenção

humana. Estes módulos têm a capacidade futuramente de comunicar-se entre si para

realizar um determinado objetivo.

Uma comunicação segura é essencial para o funcionamento de um sistema

embarcado. Neste ambiente, deve haver ligação fundamental entre a eficiência e a

qualidade da rede. Uma atenção particular deve ser dada aos protocolos, que

determinam muito o comportamento da rede. E finalmente, métodos de detecção do erro

que são necessários para construir um sistema de comunicação de confiança

(UPENDER, 1994).

Os sistemas robóticos móveis autônomos têm conquistado espaço tanto nas

universidades quanto na indústria, devido à intensa modernização que os sistemas de

automação industriais vêm sofrendo nos últimos anos. Entre os fatores que impulsionam

esta modernização pode-se incluir a competitividade crescente, a rápida alteração dos

produtos oferecidos ao mercado e o avanço tecnológico, entre outros, que visam

aumentar a produtividade, a qualidade e a confiabilidade dos produtos. Além da área de

manufatura e transporte de materiais, outras aplicações destes sistemas incluem o

trabalho em ambientes perigosos ou insalubres e a exploração espacial (COSTA, 2003).

2.1. Sistemas Remotos

Sistemas remotos, independente de sua função, são largamente utilizados nos dias

atuais nas mais diversas áreas e aplicações, mesmo com todo o avanço cientifico e

tecnológico da indústria, os sistemas autônomos de acesso remoto tem suas limitações,

tanto tecnológica como financeira.

Como sistema equivalente ao projeto proposto pode ser mencionado o sistema OTA

(Over The Air programming), porém este método é utilizado em microcontroladores de

maior capacidade de processamento e para atualização de software de celulares e PDAs

(Personal Digital Assistant).

Quando OTA é usado para atualizar o firmware de um telefone operacional, é às

vezes chamado de FOTA (Firmware Over The Air). Para definições de serviço, a

tecnologia é muitas vezes conhecido como configuração de dispositivos.

Page 16: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

16

Se o telefone móvel tem capacidade FOTA, pode-se baixar a atualização do

firmware diretamente do seu provedor de serviço de telefonia. O processo normalmente

leva entre 3 e 10 minutos, dependendo do tamanho do arquivo de atualização e da

velocidade de sua conexão sem fio. (WIKIPEDIA, 2009)

Os sistemas remotos são comumente desenvolvidos utilizando um microcontrolador.

Um microcontrolador é um computador em um chip, contendo um processador,

memória e funções de entrada/saída (PEREIRA, 2002). Na seqüência será detalhado

este elemento que é de suma importância.

2.2. Microcontrolador

Um microcontrolador (também denominado MCU ou µC) é um microprocessador

que enfatiza a alta integração, em contraste com os microprocessadores de uso geral (do

tipo usado em computadores pessoais). Além dos componentes lógicos e aritméticos

usuais de um microprocessador de uso geral, o microcontrolador integra elementos

adicionais tais como memória para armazenamento de dados ou programas, dispositivos

periféricos e interfaces de E/S que podem ir de um simples pino digital do componente

a uma interface USB (Universal Serial Bus) ou Ethernet.

Com freqüências de clock de poucos MHz ou ainda mais baixas,

microcontroladores são considerados lentos se comparados aos microprocessadores

modernos, mas isso é perfeitamente adequado para aplicações típicas. Eles consomem

relativamente pouca energia (miliwatts), e geralmente possuem a capacidade de

"hibernar" enquanto aguardam que aconteça algum evento interessante provocado por

um periférico, tal como o pressionar de um botão, que os colocam novamente em

atividade. O consumo de energia enquanto estão "hibernando" pode ser de nanowatts,

tornando-os ideais para aplicações de baixa energia e que economizem bateria

(HORENSTEIN, 2006).

De forma oposta aos microprocessadores, onde se superdimensiona ao máximo

tendo como limite o preço que o usuário deseja investir, a escolha do microcontrolador

é feita pelo projetista do equipamento. Existem duas linhas de pesquisa paralelas, mas

opostas. Uma criando microcontroladores mais capazes, para atender produtos de maior

complexidade tecnológica como os novos celulares ou receptores de TV digital e outra

para criar microcontroladores mais simples e baratos, para aplicações elementares

(como um chaveiro que emite sons).

De forma diferente da programação para microprocessadores, que em geral contam

com um sistema operacional e uma BIOS (Basic Input/Output System), o programador

ou projetista que desenvolve sistemas com microcontroladores tem que lidar com uma

gama muito grande de desafios, fazendo muitas vezes todo o processo construtivo do

aparelho: BIOS, firmware e circuitos (SEDRA, 2000).

Page 17: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

17

2.3. Microcontroladores PIC

Os microcontroladores PIC são uma família de dispositivos fabricados pela

Microchip. Utilizando uma arquitetura RISC, com freqüências de clock de até 40MHz

até 2048K word de memória de programa e até 3968 bytes de memória RAM. Além

disso, podem ser encontrados com diversos periféricos internos, como: até quatro

temporizadores/contadores, memória EEPROM interna, gerador / comparador /

amostrador PWM, conversores A/D de até 12 bits, interface de barramento CAN,

I2C,SPI, entre outros. Existem basicamente três famílias de PICs diferenciadas pelo

tamanho da palavra de memória de programa: 12,14 e 16 Bits. Todos estes dispositivos

possuem um barramento interno de dados de oito bits.

Outra característica importante da arquitetura PIC reside na semelhança e

compatibilidade entre os diversos chips. Isto facilita grandemente a migração de um

MCU para outro, pois os princípios básicos e grande parte dos registradores não diferem

entre si (HORENSTEIN, 2006).

2.3.1. Apresentando o PIC18F452

O microprocessador reúne, em um circuito integrado, todos os elementos de uma

CPU RISC de alto desempenho, sendo fabricados em encapsulamentos PLCC, TQFP,

DIP ou SOIC. Algumas caracteristicas (Datasheet PIC18F452, Microchip Technology

Inc., 2006):

- Frequencia de Operação: 40 MHz;

- Memória de Programa (instruções): 16384;

- Memória de Dados (bytes): 32K;

- Portas de E/S: Portas A, B, C, D, E;

- Total de Pinos de E/S: 34;

- Total de canais de captura de entrada: 2;

- Comunicação Serial – Enhanced UART: 2;

- Comunicação Serial – SPI (3-wire/4-wire): 3;

- Comunicação Serial – I2C: 2;

- Comunicação Paralela (PMP/PSP): Sim;

- Streaming Parallel Port (SPP) for USB streaming transfers: Não;

- Packages: PLCC, TQFP, DIP ou SOIC;

- Set (Instruções): 75;

- Timers: 4.

2.3.1.1. O diagrama de pinos

Este diagrama nos oferece os nomes de todos os pinos contidos neste componente.

Pode-se observar o diagrama na Figura 2.1:

Page 18: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

18

Figura 2. 1: Diagrama de pinos DIP do microcontrolador PIC18F452.

Fonte: Datasheet PIC18F452, Microchip Technology Inc., 2006.

2.3.1.2. O Diagrama de Blocos

Neste diagrama podemos verificar como cada parte deste componente funcionará.

Cada bloco contém uma função executada pelo microcontrolador PIC18F452. Pode-se

observar no diagrama da figura 2.2:

Figura 2. 2: Diagrama em blocos do PIC18F452.

Fonte: Datasheet PIC18F452, Microchip Technology Inc., 2006.

Page 19: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

19

2.3.1.3. Organização da Memória de Programa

A memória de programa deste componente se comporta da seguinte forma (Figura

2.3):

Figura 2. 3: Organização da Memória do PIC18F452.

Fonte: Datasheet PIC18F452, Microchip Technology Inc., 2006.

A memória é onde o microprocessador procurará as instruções a executar. O espaço

da memória de programa deste microprocessador é organizado em blocos de

endereçamento de palavras (Fonte: Datasheet PIC18F452, Microchip Technology Inc.,

2006).

Page 20: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

20

2.3.1.4. Memória de Dados

A memória de dados é onde o microcontrolador lê e escreve dados durante a

operação normal. Geralmente é do tipo volátil, embora memórias não-voláteis possam

ser utilizadas (Datasheet PIC18F452, Microchip Technology Inc., 2006). Observe a

estrutura de memória de dados do PIC18F452, na figura 2.4.

Figura 2. 4: Memória de Dados do PIC18F452.

Fonte: Datasheet PIC18F452, Microchip Technology Inc., 2006.

Page 21: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

21

2.3.2. Apresentando o PIC18F4550

O microprocessador reúne, em um circuito integrado, todos os elementos de uma

CPU RISC de alto desempenho, sendo fabricados em encapsulamentos PLCC, TQFP,

DIP ou SOIC. Algumas caracteristicas (Datasheet PIC18F4550, Microchip Technology

Inc., 2006):

- Frequencia de Operação: 48 MHz;

- Memória de Programa (instruções): 16384;

- Memória de Dados (bytes): 2048;

- Portas de E/S: Portas A, B, C, D, E;

- Total de Pinos de E/S: 20;

- Total de canais de captura de entrada: 1;

- Comunicação Serial – Enhanced UART: 2;

- Comunicação Serial – SPI (3-wire/4-wire): 3;

- Comunicação Serial – I2C: 2;

- Comunicação Paralela (PMP/PSP): Não;

- Streaming Parallel Port (SPP) for USB streaming transfers: Sim;

- Packages: PLCC, TQFP, DIP ou SOIC;

- Set (Instruções): 75/ 83 com Set de Instruções Estendida Habilitado;

- Timers: 4.

2.3.2.1. O diagrama de Pinos

Este diagrama nos oferece os nomes de todos os pinos contidos neste componente.

Pode-se observar o diagrama na Figura 2.5:

Figura 2. 5: Diagrama de pinos DIP do microcontrolador PIC18F4550.

Fonte: Datasheet PIC18F4550, Microchip Technology Inc., 2006.

Page 22: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

22

2.3.2.2. O Diagrama de Blocos

Neste diagrama podemos verificar como cada parte deste componente funcionará.

Cada bloco contém uma função executada pelo microcontrolador PIC18F4550. Pode-se

observar no diagrama da figura 2.6:

Figura 2. 6: Diagrama em Blocos do PIC18F4550.

Fonte: Datasheet PIC18F4550, Microchip Technology Inc., 2006.

Page 23: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

23

2.3.2.3. Organização da Memória de Programa

A memória de programa deste componente se comporta da seguinte forma (Figura

2.7):

Figura 2. 7: Organização da Memória do PIC18F4550.

Fonte: Datasheet PIC18F4550, Microchip Technology Inc., 2006.

Page 24: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

24

2.3.2.4. Memória de Dados

A memória de dados é onde o microcontrolador lê e escreve dados durante a

operação normal. Geralmente é do tipo volátil, embora memórias não-voláteis possam

ser utilizadas (Datasheet PIC18F4550, Microchip Technology Inc., 2006). Observe-se

na figura 2.8 a estrutura de memória de dados do PIC18F4550.

Figura 2. 8: Memória de Dados do PIC18F4550.

Fonte: Datasheet PIC18F4550, Microchip Technology Inc., 2006.

Page 25: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

25

2.4 Memória EEPROM

Uma EEPROM (de Electrically-Erasable Programmable Read-Only Memory) é um

chip de armazenamento não-volátil usado em computadores e outros aparelhos.

A memória EEPROM pode ser programada e apagada várias vezes, eletricamente, e

pode ser lida um numero ilimitado de vezes. (Datasheet 24FC512, Microchip

Technology Inc., 2004.)

2.4.1 Memória 24FC512

O Microchip Technology Inc. 24AA512/24LC512 / 24FC512 (24XX512) é um (512

KBit) Serial EEPROM, capaz de funcionar através de uma ampla gama de tensão (1,8 V

a 5,5V).

Foi desenvolvido para aplicações de baixa potência tais como comunicação pessoal

e aquisição de dados. Este dispositivo também tem uma capacidade de gravação de até

128 bytes de dados, sendo capaz de ler tanto de forma aleatória, como seqüencial com

um limite de 512Kbytes.

Linhas de endereço funcional permitem até oito dispositivos no mesmo barramento,

para até 4 Mbits de espaço de endereçamento. Este dispositivo tem em packages

DIP, DIP, DFN e TSSOP. (Datasheet 24FC512, Microchip Technology Inc., 2004.)

2.4.2. Diagrama de Pinos

Este diagrama nos oferece os nomes de todos os pinos contidos neste componente.

Pode-se observar o diagrama na Figura 2.5:

Figura 2. 9: Diagrama de Pinos da Memória 24FC512.

Fonte: Datasheet 24FC512, Microchip Technology Inc., 2004.

2.4.3. O Diagrama de Blocos

Neste diagrama pode-se verificar como cada parte deste componente funcionará.

Cada bloco contém uma função executada pela memória 24FC512. Pode-se observar no

diagrama da figura 2.10:

Page 26: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

26

Figura 2. 10: Diagrama de Blocos da Memória 24FC512.

Fonte: Datasheet 24FC512, Microchip Technology Inc., 2004.

2.4.4. Organização da Memória de Programa/Endereçamento

A memória de programa deste componente se comporta da seguinte forma (Figura

2.11):

Figura 2. 11: Organização da Memória 24FC512.

Fonte: Datasheet 24FC512, Microchip Technology Inc., 2004.

2.5. Interface de Comunicação

Para a comunicação entre o módulo base e o módulo robótico, foram utilizados um

transmissor de RF 433MHz e de 315MHz e um receptor de RF 433MHz e 315MHz.

São utilizadas duas frequências diferentes, devido a facilidade de operação dos

mesmos, para evitar conflitos de envio e recebimento de informações simultâneas e

também devido a um pino de Power Down (PDN) que permite colocar o módulo em um

estado de baixo consumo, ideal para alimentação a baterias.

Page 27: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

27

2.5.1. Características

A seguir são apresentadas as caracterísicas dos módulos de comunicação, da marca

TATO. (Datasheet TXMRXM, TATO Equipamentos Eletrônicos.)

• Alcance 150 metros com linha de visão;

• Taxas de transferência alta (2400 ~ 19200 Bauds dependendo do controlador);

• Conector padrão barra de pinos SIP, ideal para testes em protoboard;

• Compatível com todos os BASIC Step e outros microcontroladores;

• Muito fácil de utilizar, apenas um comando SEROUT é necessário;

• Modo de economia de bateria (Power Down).

2.5.2. Modo de Operação

Todo campo de RF possui uma largura de onda que é proporcional ao inverso de

sua freqüência. Os módulos de Tato utilizam uma freqüência de 433,92 MHz, o que

corresponde a uma largura de onda de 0,69 metros. A frequência de 433MHz

classificada na faixa de UHF que é definida de 300MHz ~ 3GHz. (Datasheet

TXMRXM, TATO Equipamentos Eletrônicos.).

2.5.3. Definição dos Pinos e Consumo

Os módulos de comunicação estão divididos em módulo de transmissão e módulo

de recepção como descrito a seguir:

2.5.3.1: Definição dos Pinos do Módulo de Transmissão

Figura 2. 12: Módulo Transmissor 315MHz/433MHz.

Fonte: Datasheet TXMRXM, TATO Equipamentos Eletrônicos.

Tabela 2. 1: Definição dos Pinos do Módulo de Transmissão.

Pino Nome Função

1 PDN Indicador do nível de sinal recebido

2 DATA Entrada de Dados

3 5V Entrada de alimentação

4 GND Terra

Fonte: Datasheet TXMRXM, TATO Equipamentos Eletrônicos.

2.5.3.1.1. Consumo de Corrente do Módulo de Transmissão

Tabela 2. 2: Consumo de Corrente do Módulo de Transmissão.

Com entrada em nível alto 5,1mA

Com entrada em nível baixo 1,8mA

Modo Power Down. 5uA

Fonte: Datasheet TXMRXM, TATO Equipamentos Eletrônicos.

Page 28: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

28

2.5.3.2: Definição dos Pinos do Módulo de Recepção

Figura 2. 13: Módulo Receptor 315MHz/433MHz.

Fonte: Datasheet TXMRXM, TATO Equipamentos Eletrônicos.

Tabela 2. 3: Definição dos Pinos do Módulo Receptor.

Pino Nome Função

1 RSSI Indicador do nível de sinal recebido

2 PDN Power Down, ativo em 0, deixe em aberto para função normal

3 DATA Saída de dados

4 5V Entrada de alimentação

5 GND Terra

Fonte: Datasheet TXMRXM, TATO Equipamentos Eletrônicos.

2.5.3.2.1. Consumo de Corrente do Módulo de Recepção

Tabela 2. 4: Consumo de Corrente do Módulo Receptor.

Em Operação 5,2 mA

Em Power Down 28uA

Fonte: Datasheet TXMRXM, TATO Equipamentos Eletrônicos.

2.5.4. Calibração dos Módulos de Comunicação

Ao iniciar a comunicação entre os módulos, um pulso de sincronismo deve ser

enviado para restabelecer o link de RF entre os módulos. Uma série de caracteres pode

fazer este sincronismo, mas um pulso em nível alto é mais eficiente. (Datasheet

TXMRXM, TATO Equipamentos Eletrônicos).

2.5.5. Aplicações

• Sensores sem fio;

• Controle remoto de robôs;

• Aquisição de dados sem fio.

2.6. Linguagem de Desenvolvimento

2.6.1. A Linguagem C

A linguagem C é uma linguagem imperativa e procedural de alto nível, para

implementação de sistemas. Seus pontos de design foram para ele ser compilado,

fornecendo acesso de baixo nível à memória e baixos requerimentos do hardware.

Além disso, teve-se o uso do software MPLAB para o desenvolvimento dos

programas utilizados nos microcontroladores.

Page 29: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

29

2.6.2. Linguagem Assembly

A Linguagem Assembly é uma família de linguagens de baixo nível

para programação de computadores, microprocessadores, microcontroladores, e

outros (geralmente) de circuitos integrados. Eles implementam uma representação

simbólica da máquina de códigos numéricos e outras constantes necessárias para o

programa de uma arquitetura da CPU em particular. Esta representação é normalmente

definida pelo fabricante do hardware, e baseia-se em abreviaturas (chamados

mnemônicos) que ajudam o programador a lembrar de instruções individuais, registros,

etc. A linguagem Assembly é, portanto um conjunto de códigos específicos para uma

determinada arquitetura de computador físico ou virtual (ao contrário da maioria

linguagens de alto nível, que são geralmente portáteis).

Um programa utilitário chamado assembler é utilizado para traduzir a montagem de

instruções na linguagem em código do computador de destino da máquina. A montadora

realiza uma tradução isomórfica, um mapeamento, das declarações mnemônicas em

instruções de máquina e dados. Isto está em contraste com linguagens de alto nível, em

que uma única instrução geralmente resulta em muitas instruções de máquina. (Intel®

64 and IA-32 Architectures Software Developer’s Manual – Volume 1: Basic

Architecture).

2.6.3. Software MPLAB

MPLAB Integrated Development Environment (IDE) é um software livre,

integrado a base GCC (GNU Compiler Collection), têm ferramentas para o

desenvolvimento de aplicações embarcadas empregando Microcontroladores PIC da

Microchip e microcontroladores dsPIC.

O IDE MPLAB funciona como uma aplicação 32-bits no Microsoft Windows, e

incluem vários outros componentes de software para desenvolvimento de aplicativos,

simulação de hardware e de depuração. MPLAB IDE também serve como interface

gráfica unificada sendo compatível a softwares de terceiros e ferramentas de

desenvolvimento de hardware.

Tanto a linguagem Assembly como a linguagem de programação C podem ser

usadas com MPLAB IDE. Outras linguagens podem ser suportadas por meio do uso de

programas de terceiros.

MPLAB IDE não suporta ao Linux, Unix ou Macintosh com sistemas operacionais.

(MPLAB USER’S GUIDE, 2009).

2.6.3.1. Arquivo Intel Hex

Após o desenvolvimento do programa no ambiente MPLAB, independente da

linguagem utilizada, no momento de gravação deste software para o microcontrolador, o

MPLAB faz uma codificação do arquivo a ser enviado, para o formato Intel Hex.

O formato Intel Hex é o formato padrão para microcontroladores, sendo que o

microcontrolador reconhecerá as instruções a serem executadas. Mais detalhes podem

ser vistos no Apêndice A – Intel Hex.

Page 30: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

30

2.7. Protocolos de Comunicação

Para a comunicação entre os microcontroladores e a memória para gerenciamento

de informações e regravação de novos dados foi utilizado protocolos de comunicação

desenvolvido em linguagem C que é a linguagem compativel com a programação de um

microcontrolador.

Entre os protocolos compatíveis e utilizados atualmente nos microcontroladores

serão usados os Protocolos I2C e SPI, protocolos padrões de comunicação entre

microcontroladores e o Protocolo ICSP responsável pela regravação de dados na

memória de um microcontrolador (PEREIRA, 2002).

2.7.1. Protocolo SPI

A tecnologia de comunicação SPI (Serial Peripheral Interface) foi desenvolvida

pela Motorola para a linha de processadores da família MC68K. O SPI é um protocolo

síncrono, opera no modo full duplex e é composto por quatro sinais.

O protocolo SPI não permite o endereçamento. A comunicação só pode ser feita

entre dois pontos, sendo um deles o Master e outro o Slave. É feita por três vias:

• Clock: trata-se da via de clock, que pode ser entrada (Slave) ou saída (Master);

• Data in: trata-se da entrada de dados, ou seja, a via de recepção;

• Data out: trata-se da saída de dados, ou seja, a via de transmissão.

2.7.2. Protocolo I2C

I²C (Inter-Intergrated Circuit) é um barramento serial multi-mestre desenvolvido

pela Philips que é usado para conectar periféricos de baixa velocidade a uma placa-

mãe, a um sistema embarcado ou a um telefone celular.

O I²C utiliza apenas duas linhas bidirecionais de dreno aberto, Dados Seriais (Serial

Data - SDA) e Clock Serial (Serial Clock - SCL). Este protocolo especifica dois sinais

de comunicação, um com o sinal de clock (gerado pelo mestre) e outro de dados,

bidirecional.

2.7.3. Protocolo de gravação ICSP

ICSP possibilita uma maneira conveniente de programar microcontroladores PIC

sem remover o microcontrolador da placa de desenvolvimento ou de produção. Não

havendo a necessidade de sockets de programação para pacotes de chips que

normalmente tem um alto custo. (ICSP GUIDE, 2003)

Cinco conectores são necessários para programar um PIC:

- Sinal PGC e PGD (Clock e Data)

Os dados (PGD) e o pulso de disparo (clock) (PGC) transmitem dados ao

microcontrolador PIC. Os primeiros dados são emitidos em alta ou baixa tensão. Isto

possibilita a leitura e gravação no firmware do microcontrolador PIC.

PGD é também a linha dirigida pelo microcontrolador PIC durante sua verificação,

isto é, é um pino bidirecional.

Page 31: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

31

- Sinal PGM (Sinal de programação de baixa tensão)

A finalidade deste pino é manter PGM baixo (baixa tensão, com nível lógico zero)

assim o microcontrolador não entra na modalidade de LVP (Low Volt Programming).

- +Vdd/-Vss

Estes são respectivamente o Power e o Ground (Terra), pinos padrões nos

microcontroladores. Responsáveis pela alimentação do microcontrolador PCI.

- MCLR/Vpp

Este é o pino de tensão de programação. Um PIC entra em modo de programação

quando a tensão esta acima de 13 volts.

2.7.3.1. Bits de configuração

A configuração de bits pode ser programada em 0, ou deixar de ser programada em

1, para selecionar vários dispositivos configurados.

Estes bits são mapeados começando na memória do programa no endereço

(300000h-3FFFFFh), e só podem ser acessadas utilizando a tabela de escrita e leitura.

Os registradores de configuração são escritos um byte por vez.

O registrador utilizado para entrar no modo gravação ICSP é o CONFIG4L, com

endereçamento 300006h, e funciona segundo a figura abaixo. (In-Circuit Serial

Programming (ICSP) Guide.)

Figura 2. 14: Registrador de Configuração 4 Low (CONFIG4L).

Fonte: In-Circuit Serial Programming (ICSP) Guide.

Page 32: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

32

2.7.3.2. Registradores de Controle

Vários registradores de controle são utilizados em conjunto com as instruções de

TBLRD( leitura) e TBLWT (escrita), os mais importantes para a gravação são:

2.7.3.2.1. Tablat

O Tablat (Table Latch Register) é um registrador de 8 bits mapeado no espaço SFR

(Special Function Register). O Tablat é utilizado para manter os 8 bits de dados durante

a transferência entre a memória de programa e a memória de dados.

2.7.3.2.2. TBLPTR

A tabela de ponteiros (TBLPTR) endereça um byte dentro do programa de memória,

é utilizada pelas instruções TBLRD e TBLWT em um dos quatro modos de operação

como mostrada na tabela 2.6.

2.7.3.3. Modo Gravação

Para entrar no modo gravação, os pinos devem ser configurados da maneira a seguir:

~ MCLR/VPP = H, RB6 e RB7= 0v. PGM (RB5) = L

Tabela 2. 5: Descrição dos pinos no modo gravação.

Nome da

Pinagem

Durante a Programação

Pino Tipo Descrição

~MCLR/VPP VPP P Programming Power

VSS VDD P Power Supply

VDD VSS P Ground

RB6 RB6 I Serial Clock

RB7 RB7 I/O Serial Data

Legenda: I= Input, O= Output, P= Power.

Fonte: In-Circuit Serial Programming (ICSP) Guide.

2.7.3.4. Low Voltage ICSP Programming

O bit LVP (Low Voltage programming). Habilita o registrador CONFIG4L. Este

tipo de configuração permite ao microcontrolador ser programado via ICSP utilizando o

VDD (4,5 a 5,5V).

2.7.3.5. 4-Bits Serial Instruction

Um conjunto de instruções de 4 bits são fornecidos para o modo ICSP. As instruções

mais utilizadas podem ser executadas mais rapidamente

O opcode de 4 bits é deslocado enquanto a instrução previamente buscada é

executada.

Os 4 bits de instrução contém os 4 bits menos significativos do opcode os outros 12

bits são todos zeros. Os 12 primeiros bits são considerados por default instruções

especiais.

Page 33: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

33

Tabela 2. 6: Instruções Especiais para Execução de Instruções Seriais e ICSP.

Mnemonic,

Operands

Description Cycles 4-bit

Opcode

NOP No Operation (Shift in 16-bit instrucion) 1 0000

TBLRD * Table Read (no change to TBLPTR) 2 1000

TBLRD *+ Table Read (post-increment TBLPTR) 2 1001

TBLRD *- Table Read (post-decrement TBPLTR) 2 1010

TBLRD +* Table Read (pre-increment TBLPTR) 2 1011

TBLWT * Table Write(no change to TBLPTR) 2 1100

TBLWT *+ Table Write (post-increment TBLPTR) 2 1101

TBLWT *- Table Write (post-decrement TBPLTR) 2 1110

TBLWT +* Table Write (no change to TBLPTR) 2 1111

Fonte: In-Circuit Serial Programming (ICSP) Guide.

2.7.3.6. Pseudo-Comandos

Os pseudo-comandos são utilizados uma vez que as instruções são carregadas em

um registrador de deslocamento e o dispositivo espera por um comando a ser recebido.

Na tabela 2.7 é descrito como implementar os pseudo-comandos utilizando

instruções de máquina.

Tabela 2. 7: Mapeamento de Pseudo Comandos ICSP.

ICSP Command Golden Gate Instrunctions

Load Configuration

MOVLW #Address 1

MOVWF TBPLTR

MOVLW #Address 2

MOVWF TBLPTRH

MOVLW #Address 3

MOVWF TBLPTRU

Load

Data

Not needed. Data encoded in 4-

bit TBLWT instruction sequence.

Read Data TBLRD Instruction

Increment Address Not needed.Data encoded in 4-

bit TBLWT instruction sequence.

Load Adderess MOVLW #Addr_Low

MOVWF TBPTRL

MOVLW #Addr_High

Page 34: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

34

MOVWF TBLPTRH

MOVLW #Addr_upper

MOVWF TBLPRU

RESET Address

MOVLW #Data

MOVWF TBLPTRH

MOVWF TBLPTRU

MOVWF TBLPTRL

Begin Programming TBLWT

End Programming Not Needed.Programming Will

cease at the end of TBLWT

execution.

Fonte: In-Circuit Serial Programming (ICSP) Guide.

2.7.3.7. Seqüência de Programação

A programação é realizada executando a instrução TBLWT. No modo ICSP, esta

seqüência de instruções inclui 16 bits de dados deslocados dentro de um buffer de dados

e logo gravado no Word location endereçado pelo TBLPTR.

Os 16 bits são deslocados dentro do TABLAT e nos buffers dos registradores. O

TBLPTR aponta à palavra que será programada. (In-Circuit Serial Programming (ICSP)

Guide.)

Após habilitar o modo de gravação, é seguida uma seqüência de instruções

conforme o algoritmo abaixo:

1. Setar o TLBTR com o primeiro endereço a ser programado (byte par ou impar);

2. Deslocar em uma instrução 4-bit TBLWT;

3. 16 bits de dados são deslocados para programação tanto para o byte mais

significativo e menos significativo do primeiro programa alocado;

4. Executar a instrução TBLWT para o programa anteriormente alocado;

5. Verificar o byte mais significativo (endereço ímpar) executando a instrução

TLBRD*- (pós-decremento). (TBLPTR aponta ao endereço ímpar).

2.7.3.8. Fluxogramas

No ANEXO B são apresentados os fluxogramas de Gravação ICSP e Recebimento

e Gravação na Memória do Módulo Robótico.

Page 35: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

35

CAPÍTULO 3. ESPECIFICAÇÃO DO PROJETO

3.1. Descrição Geral

Este projeto foi dividido em dois subsistemas. O primeiro, chamado de módulo base,

é composto por um programa e um circuito eletrônico interligado a um computador

destinados a receber o novo firmware e transmiti-lo para o sistema embarcado.

O segundo subsistema é composto por um módulo robótico que receberá os dados

transmitidos pelo módulo base, enviará dados de posicionamento e do ambiente para o

computador e movimentará o robô.

Na figura 3.1, é apresentado como o sistema se comporta.

Figura 3. 1: Interação entre o computador, que envia a nova configuração para o

módulo robótico microcontrolado.

Na seqüência, será apresentado individualmente e com maior detalhamento, cada um

dos módulos contidos no projeto.

3.2. Especificação de Hardware

Nesta etapa serão especificados todos os componentes eletrônicos utilizados para o

desenvolvimento deste projeto

3.2.1. Módulo Base

O módulo base se comunica com o PC por meio de uma conexão USB, recebendo e

enviando os dados segundo protocolo próprio, pré-especificado e apresentado na

seqüência. Este protocolo é utilizado para separar dados de comunicação normal a

serem transmitidos e a transmissão de um novo programa, a ser gravado no

microcontrolador do robô.

Para se comunicar com o módulo robótico, o módulo base contém um sistema de RF,

responsável por retransmitir todos os dados recebidos pela interface USB para o módulo

robótico. Da mesma forma, todos os dados recebidos do módulo robótico por meio do

PC /

Módulo Base

Módulo

Robótico

Comunicação RF

Page 36: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

36

sistema RF são retransmitidos ao computador por meio da interface USB. Na figura 3.2,

é apresentado um diagrama em blocos do módulo base.

Figura 3. 2: Diagrama em blocos do computador com a placa responsável pela

comunicação com o módulo robótico.

O dado recebido pelo módulo será enviado à memória EEPROM para realizar o teste

de consistência, uma vez verificado o dado, este será gravado no segundo PIC.

Este teste de consistência é feito antes da sobreposição de dados e funciona da

seguinte forma: Antes da transmissão o arquivo é dividido em vários pacotes. Cada

pacote tem uma seqüência inicial de bytes (Figura 3.3). O primeiro byte determina se o

pacote é um dado ou programa e, o segundo byte representa a ordem seqüencial do

pacote transmitido. No final da transmissão verifica-se se todos os bytes foram

recebidos. Sendo assim é possível determinar se o arquivo está ou não corrompido.

Como os dados são recebidos via RF, somente após o recebimento de todos os

pacotes, é realizado o teste de consistência, visando à integridade das informações:

Figura 3. 3: Tamanho do pacote de dados.

- Tamanho Total do pacote: 18 bytes.

- Estrutura do pacote: Primeiro byte: tipo de pacote (dado ou programa).

Segundo byte: ordem do pacote.

- Consistência do Pacote: Divisão dos bytes em pacotes para segurança na

transmissão de informações.

3.2.2. Módulo Robótico

O módulo robótico é constituído de dois microcontroladores trabalhando em

paralelo. O primeiro microcontrolador tem a função de realizar o controle robótico,

sendo que o objetivo inicial deste módulo é a detecção e desvio de obstáculos. Este

objetivo pode ser alterado a qualquer momento via comandos da base, sem a

necessidade de uma regravação do programa.

PIC18F4550Módulo RF

433 MHz

SPIUSBComputador

Page 37: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

37

O segundo microcontrolador tem o objetivo de controlar a comunicação entre o

controlador do robô e o módulo base. Atua como um intermediário na comunicação,

verificando se o dado transmitido é uma informação que deverá ser encaminhada ao

controlador do robô ou se é uma informação de um novo programa a ser gravado no

controlador. No primeiro caso, o dado é transmitido de forma transparente para o

módulo robótico. No caso do dado transmitido ser um novo programa, este é

armazenado até o final da transmissão, para então ser gravado no microcontrolador

através do protocolo ICSP.

Na figura 3.4, é apresentado um esquema da ligação entre os dois microcontroladores.

Figura 3. 4: Comunicação entre os microcontroladores PIC.

Na figura 3.4, o módulo receptor é responsável por receber as informações da base e

encaminhá-las via serial RS-232 ou ICSP, dependendo da informação.

3.2.3. Diagrama em blocos do módulo Robótico.

O Módulo Robótico é composto de sensores infravermelhos responsáveis pela

detecção de obstáculos, dois motores DC que realizam o deslocamento do mesmo.

O circuito é responsável pela transmissão, recepção e gravação de dados e também

contém o software com o objetivo do módulo.

A figura 3.5 descreve o funcionamento geral do módulo robótico.

CIRCUITOMOTOR DC MOTOR DC

SENSOR

INFRAVERMELHO

SENSOR

INFRAVERMELHO

SENSOR

INFRAVERMELHO

SENSOR

INFRAVERMELHO

Figura 3. 5: Diagrama em Blocos do Módulo Robótico.

PIC18F452

módulo de

controle

PIC18F452

módulo

receptor /

reconfigurador

SERIAL

TX/RX

ICSP

Page 38: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

38

3.2.4. Diagrama em blocos do circuito do módulo robótico.

O circuito é responsável pela transmissão, recepção e gravação de dados e também

contém o software com o objetivo do módulo.

Na figura 3.6, é apresentado um diagrama em blocos do circuito implementado para

a transmissão entre o módulo robótico e um computador.

Figura 3. 6: Diagrama em blocos do circuito do módulo robótico.

O bloco Módulo RF é um transmissor-receptor de dados seriais que trabalha a uma

freqüência de 433MHz. O primeiro PIC18F452 é o microcontrolador responsável por

efetuar a comunicação com a antena, e de gerenciar o armazenamento do novo

programa que será recebido. Após um teste de consistência efetua-se a regravação do

sistema embarcado. O segundo PIC18F452 é o microcontrolador responsável pelo

controle robótico que tem como propósito o deslocamento autônomo do módulo.

Na tabela 3.1 são descritas as funcionalidades de cada microcontrolador:

Tabela 3. 1: Descrição das funcionalidades de cada microcontrolador.

Componente Funcionalidade Descrição de Funcionalidade

PIC18F452 A Protocolo ICSP Protocolo de gravação entre os

microcontroladores.

Protocolo SPI Canal de comunicação entre o módulo RF e

o PIC-18F452.

Protocolo RF Comunicação pelo RF

Protocolo I2C Responsável pela comunicação e gravação

da memória.

PIC18F452 B Algoritmo de

movimentação.

Responsável pela movimentação do módulo.

Leitura e interpretação

de sensores óticos.

Responsável pela detecção de obstáculos

Módulo RF

433MHz

Memória

EEPROM

24FC512

PIC18F452

B

PIC18F452

A

SPI

SERIAL

TX/RX

ICSP

I2C

Page 39: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

39

3.3. Especificação de Software

Tem-se como objetivo principal a criação de uma biblioteca ICSP responsável pelo

funcionamento do protocolo de gravação de um microcontrolador para que este possa se

configurar de forma autônoma, ou seja, sem ajuda de outros periféricos ou kits de

gravação. Com isto, o microcontrolador poderá gravar os dados (previamente recebidos

via radio frequência) para outro microcontrolador que tenha suporte a ICSP. No caso da

aplicação desenvolvida, este segundo PIC contém a lógica responsável pelo controle

robótico do módulo. Os programas são desenvolvidos em linguagem C tanto no módulo

como no PC.

Neste projeto são utilizados dois microcontroladores PIC. O primeiro contém

somente o protocolo de recebimento e gravação de dados e o segundo contêm a lógica

computacional responsável pelo funcionamento do módulo. Esta separação é feita

devido à quantidade de memória limitada em um único PIC. O dado recebido é enviado

à memória EEPROM e, após passar por um teste de consistência, é gravado no segundo

PIC.

3.3.1. Fluxograma do Software no PC

Segue na figura 3.7 o fluxograma do software desenvolvido no PC.

Inicio

Abrir Porta Com

Abrir Arquivo

Hexadecimal

Decodificar

Arquivo

Enviar

Erro

Sim

Não

Fim

Figura 3. 7: Fluxograma do software no PC.

Page 40: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

40

Na figura 3.7 é descrito o fluxograma no software no PC, que consiste em:

1- Abrir o programa;

2- Habilitar porta de comunicação COM, estabelecendo-se assim uma conexão entre o

módulo base e o computador.

3- Abri o arquivo a ser decodificado;

4- Executar a decodificação;

5- Enviar o arquivo ao módulo robótico.

3.3.2. Diagrama de Caso de Uso

Segue na figura abaixo o diagrama de caso de uso do software desenvolvido no PC.

Figura 3. 8: Diagrama de Caso de Uso.

3.3.3. Tela do Software do PC

A Figura a seguir mostra a tela desenvolvida para o PC, com o objetivo de fazer a

decodificação do arquivo hexadecimal e seu envio para o módulo robótico por meio do

módulo base conectado ao PC.

Figura 3. 9: Tela do software para PC.

Page 41: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

41

3.3.4. Exemplo de Programa a ser decodificado e enviado

Este é um exemplo do formato de arquivo Intel Hex, que é gerado pelo software

MPLAB.

:02 0000 04 0000 FA

:10 0000 00 02EF00F0F86AD09EEA6AE96AC180C182 14

:10 0010 00 C184C196926A896A92908980948482B4 DC

:10 0020 00 09D09296899692988998929289829294 10

:10 0030 00 89942CD0948682B609D0929289929294 17

:10 0040 00 899492968996929A898A20D0948882B8 C7

:10 0050 00 09D09296899692988998929289929294 D0

:10 0060 00 898414D0948A82BA09D0929289929294 07

:10 0070 00 8994929689869298899808D092928992 CA

:10 0080 00 929489849296898692988998C5D70300 1C

:02 0000 04 0030 CA

:0E 0000 00 00220C0E000181000FC00FE00F40 27

:00000001FF (FINAL DO PROGRAMA)

3.3.5. Exemplo do Programa decodificado

O código em verde representa um exemplo do programa já decodificado e pronto

para ser enviado ao microcontrolador.

Isto se da ao fato que nem todo o arquivo Intel Hex gerado pelo MPLAB é utilizado

pelo microcontrolador, sendo que alguns caracteres são somente cabeçalhos com

informações referentes às linhas de instrução, como explicado no Apêndice A.

02EF00F0F86AD09EEA6AE96AC180C182

C184C196926A896A92908980948482B4

09D09296899692988998929289829294

89942CD0948682B609D0929289929294

899492968996929A898A20D0948882B8

09D09296899692988998929289929294

898414D0948A82BA09D0929289929294

8994929689869298899808D092928992

929489849296898692988998C5D70300

O código em verde demonstra a decodificação, ou seja, os dados que serão enviados

por meio do protocolo de transmissão.

Page 42: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

42

3.3.6. Protocolo de Transmissão

Após a decodificação do arquivo Intel Hex, é montado pacotes como demonstrado

na figura 3.3 que contém as informações a serem transmitidas. Na tabela 3.2 é

apresentado um exemplo de como as informações hexadecimais ficam separadas nos

pacotes a serem transmitidos.

Tabela 3. 2: Detalhes do Pacote a ser Transmitido.

0 1 02 EF 00 F0 F8 6A D0 9E EA 6A E9 6A C1 80 C1 82

0 2 C1 84 CA 96 92 6A 89 6A 92 90 89 80 94 84 82 B4

3.3.7. Protocolo ICSP

Como mencionado anteriormente o protocolo ICSP foi desenvolvido para a gravação

de informações no microcontrolador a distância, em anexo é demonstrado os códigos

necessários para o funcionamento do protocolo ICSP.

Estes códigos que formam o protocolo ICSP seguem uma seqüência que pode ser

observadas nos fluxogramas no Anexo B.

3.3.8. Fluxograma de Detecção de obstáculos

O módulo robótico é composto de sensores infravermelhos responsáveis pela

detecção de obstáculos, dois motores DC que realizam o deslocamento do mesmo. A

partir disso foi criado um fluxograma de funcionamento dos motores que é apresentado

na Figura 3.7.

Figura 3. 10: Fluxograma de detecção de obstáculos.

INICIO

Liga

Motores

Sensor

AtivoSIM

Motores

Ligados

NAO

Qual sensor ?

Desliga Motor

Esquerdo

Motor Direto Gira

Sentido Anti-Horário

TraseiroDianteiro

Qual Posição?

Desliga Motor Direito

Motor Esquerdo Gira

Sentido Anti-Horário

DireitoEsquerdo

Desliga Motor

Esquerdo

Motor Direto Gira

Sentido Horário

Desliga Motor Direito

Motor Esquerdo Gira

Sentido Horário

Qual Posição?Esquerdo Direito

Page 43: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

43

3.4. Vantagens do Projeto

Seguem algumas vantagens do projeto e os motivos que levaram ao

desenvolvimento de um módulo robótico com gravação de microcontroladores via rádio

frequência:

- Tempo e Custo: O projeto permite a otimização de tempo e custo, pois a gravação

de programas é feita remotamente, sem a necessidade de encaminhar o dispositivo a

centros especializados para efetuar a atualização ou correção do sistema embarcado.

- Segurança: O circuito foi projetado considerando a segurança de operação do

módulo robótico, com o propósito de não afetar o funcionamento deste. Pois existem

dois microcontroladores trabalhando em paralelo cada um com diferentes

funcionalidades (Tabela 3.1).

- Diversidade de aplicações: O objetivo inicial deste projeto consiste no uso para

fins educacionais, pois é possível alterar a programação do módulo robótico, colocando

novos objetivos por meio de outros algoritmos de inteligência artificial. Também é

possível a utilização de sensores diversos como, por exemplo, sensores de temperatura,

umidade, pressão, etc.

- Interação de dispositivos: Futuramente é possível o desenvolvimento de mais

módulos robóticos para interagirem entre si.

3.5. Desvantagens do Projeto

Segue algumas vantagens e limitações do projeto:

- Limitação de microcontroladores: Este projeto limita-se ao uso de

microcontroladores PIC.

- Baixo processamento de informações em relação aos outros microcontroladores

encontrados em dispositivos como celulares e PDAs.

- Baixa capacidade de armazenamento em memória, pois não é possível armazenar o

protocolo de gravação e o objetivo do módulo no mesmo microcontrolador, sendo

necessário o uso de memória externa.

3.6. Tabela de Custos

Criou-se uma tabela de custos, conforme Anexo D, baseando-se em valores reais a

nível corporativo.

Foram levados em conta os componentes comprados para desenvolvimento do

projeto, a utilização da estrutura dos laboratórios da Universidade, entre outros.

3.7. Cronograma de Desenvolvimento

Para manter o cumprimento de prazos, foi desenvolvido um cronograma com todas

as etapas de pesquisa e desenvolvimento do projeto, conforme Anexo E.

Page 44: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

44

CAPÍTULO 4. VALIDAÇÃO E RESULTADOS

Na figura 4.1 é apresentada a descrição geral do projeto desenvolvido. Mostrando a

interação do módulo base, responsável pela comunicação com o módulo robótico e a

transmissão de dados, via radio frequência.

Figura 4. 1: Interação entre o módulo base e o módulo robótico.

Os testes realizados para validação do projeto foram divididos de duas formas: testes

reais, em que foi realizado a implementação do sistema com componentes físicos e

verificado seu funcionamento; e testes de simulação, em que foi verificada a validade de

códigos de firmware. Na seqüência serão apresentados os testes realizados.

4.1. Validação dos Motores

Foram avaliados quatro tipos de motores DC para o controle de movimentação do

robô. Os parâmetros para avaliação dos motores são: torque, rotação e corrente

consumida. Na tabela 4.1, são apresentados os quatro modelos de motores. Devido ao

fato do módulo robótico ter um peso de 3,5kg, foi selecionado o motor AK360/12-R44

para o desenvolvimento do projeto.

Page 45: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

45

Tabela 4. 1: Modelos de motores avaliados para o projeto.

Modelo Rotação (rpm) Corrente (A) Torque

(kgf/cm)

AK360/12-R44 32,6 0,41 2,24

AK510/12R-3 2,7 0,15 15

AK510/12R1-3 11,7 0,3 8,5

AK555/12-R83 65,4 1,606 11,1

Fonte: Datasheet AK360/12-R44

A partir disso foi criado um fluxograma de funcionamento dos motores que foi

apresentado anteriormente (Figura 3.7), basicamente o programa inicial proposto faz o

deslocamento do módulo, desviando de obstáculos reconhecidos por meio dos sensores

de distância.

Este fluxograma foi na seqüência escrito em linguagem de programação C e simulado

no software Proteus, conforme esquemático da figura 4.2.

No teste de simulação foi possível obter uma velocidade máxima de 3,6 m/s, sendo

necessário um espaço de manobra, para desviar, de 20 cm.

Figura 4. 2: Esquemático do funcionamento do motor no software Proteus.

Na figura 4.3 visualiza-se o sistema embarcado do módulo robótico. Este é

composto, pelo circuito à esquerda, responsável pelo gerenciamento dos dispositivos

microcontrolados conforme capítulo 3 e, o circuito à direita, responsável pelo controle

dos motores.

Page 46: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

46

Figura 4. 3: Sistema embarcado do módulo robótico.

Com isto observa-se na figura 4.4 o módulo robótico completo, composto pelo

sistema embarcado, motores responsáveis pelo seu deslocamento, sensores de detecção

de obstáculos e antenas que efetuam a transmissão e recepção de dados.

Figura 4. 4: Módulo Robótico.

Page 47: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

47

4.2. Detecção de distância

Para avaliar o desempenho dos sensores de distância foram realizados diversos

testes. Estes testes tinham por objetivo avaliar: a interferência de outros elementos de

iluminação em relação ao fotodetector, e avaliar a distância de detecção de diversos

materiais comumente encontrados em ambientes de laboratório, como cadeiras, mesas,

armários e pessoas.

Os testes foram realizados variando a iluminação ambiente e o objeto a ser detectado.

Sendo que na tabela 4.2 são apresentados os resultados destes testes.

Tabela 4. 2: Relação entre iluminação do objeto a ser detectado e distância de

detecção do circuito desenvolvido.

Iluminação

(lux)

Objeto Distância

medida (cm)

100 Cadeira 40

200 Cadeira 42

400 Cadeira 43

800 Cadeira 46

100 Mesa 48

200 Mesa 52

400 Mesa 55

800 Mesa 57

100 Pessoa 43

200 Pessoa 46

400 Pessoa 49

800 Pessoa 51

Estes resultados foram baseados na unidade lux, este é utilizado como sistema de

medida da intensidade da luz detectado pelo olho humano, como descrito na tabela 4.3.

Tabela 4. 3: Nível de intensidade da luz em diversos ambientes.

Intensidade da Luz (lux) Descrição

100 Tempo Nublado / Escuro

320–500 Luz branca no ambiente

400 Nascer do sol e por do sol em um dia claro

1000 Tempo aberto com sol ao meio dia.

Fonte: Wikipedia - LUX

4.3. Comunicação

A validação da comunicação sem fio foi realizada analisando os pacotes

transmitidos tanto do módulo robótico para o módulo base quanto o inverso. Foi

analisada também a estrutura do protocolo para detecção de pacote de comunicação e

pacote de programa.

O teste de validação da comunicação foi realizado enviando pacotes seqüência (burst)

de 10 bytes a um intervalo de 20ms, primeiro do módulo robótico para o módulo base e

após o inverso, neste teste foi avaliado a distância máxima de comunicação entre os

Page 48: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

48

módulos em ambientes fechados, abertos e mistos, sendo que neste último o módulo

base está em um ambiente fechado e o módulo robótico em um ambiente aberto. Na

tabela 4.4, são apresentados os resultados de desempenho dessas transmissões.

Tabela 4. 4: Resultado dos testes de distância máxima de comunicação entre os

módulos.

Tipo de

ambiente

Direção de

comunicação

Distância

Máxima (m)

Aberto Base-robô 60

Fechado Base-robô 20

Misto Base-robô 37

Aberto Robô-Base 55

Fechado Robô-Base 18

Misto Robô-Base 35

Quanto aos testes de protocolo, foram enviados pacotes diversos e intercalados entre

dados e programa. Foi verificado que durante a transmissão de um programa não é

possível enviar pacotes de dados sendo necessário aguardar o termino desta transmissão

para efetuar um novo envio.

Por último, o consumo de energia dos módulos de RF foi de 8mA para o módulo base

e 6mA para o módulo robótico, sendo considerado um consumo relativamente baixo na

literatura.

4.4. Protocolo ICSP

Baseando-se nas etapas pré-especificadas do modo gravação ICSP foram realizados

os testes de execução, para validar o protocolo de gravação. O processo consistia em

enviar o algoritmo responsável pela detecção de obstáculo, via radio freqüência e gravá-

lo no microcontrolador PIC18F452-A, responsável pelo recebimento dos pacotes

(capítulo 3). Em seguida é feito o teste de consistência na memória 24FC512 para

verificar o envio completo dos pacotes. Após esta análise de consistência, é feita a

gravação da informação no microcontrolador PIC18F452-B, através do protocolo ICSP.

Foi possível validar o protocolo ICSP, pois a gravação estava sendo realizada,

porém ocorreram falhas no parâmetro de execução, já que a gravação ocorria no

microcontrolador PIC18F452-A ao invés de ser enviado ao microcontrolador

PIC18F452-B, devido a problemas na execução dos passos responsáveis pelo modo de

gravação ICSP composto pelos pinos PGC, PGD, PGM. Estes passos foram revisados,

testados e executados de forma individual conforme as especificações técnicas do ICSP

Programming Guide.

Page 49: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

49

4.5. Validação do Recebimento e Gravação na Memória

Para confirmar o recebimento de informações, a gravação na memória e sua

consistência, foi enviada uma seqüência pré-determinada de caracteres (15 EF 00 F0 EA

6A 0E). Este teste pode ser visualizado no osciloscópio, como demonstrado na figura

4.5.

Figura 4. 5: Exemplo de envio de um caractere.

A figura 4.5 exemplifica o envio de um caractere. O canal 1 (CH1) representa o

envio do caractere a partir do módulo base e o canal 2 (CH2) representa este caractere

sendo recebido pelo módulo robótico, especificamente no PIC18F542-A, é feita sua

gravação na memória 24FC512. Após o término desta ação, o microcontrolador lê a

informação gravada na memória e efetua o reenvio para o módulo base, confirmando

assim todos os passos necessários para a transmissão, recepção e gravação de

informações via rádio frequência.

Com o auxílio de um gravador serial e o software IC-PROG, foi possível realizar a

leitura e visualização do conteúdo da memória. Confirmando assim que as informações

que eram enviadas via radio frequência, chegavam ao destino e estavam em total

igualdade com as informações transmitidas.

A figura 4.6 mostra o programa IC-PROG com a memória vazia.

Page 50: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

50

Figura 4. 6: Programa IC-PROG.

Após a inicialização do programa e a execução da gravação de dados, foi efetuada a

leitura da memória para confirma a correta gravação das informações e assim verificar o

conteúdo gravado na memória, conforme figura 4.7.

Figura 4. 7: Informações gravadas na memória.

Page 51: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

51

4.6. Problemas Encontrados

Foram encontrados alguns problemas no decorrer do desenvolvimento do projeto,

porém solucionados, e serão abordados pelos seguintes tópicos:

- Sensores Ópticos;

- Reconhecimento de Comandos para os Motores;

- Sincronia das Antenas.

4.6.1 Sensores Ópticos

Devido à alta sensibilidade de luminosidade, a princípio houve uma má

interpretação dos níveis lógicos que determinavam a existência ou não de obstáculos.

Esta foi corrigida através da realização de vários testes de incidência da luz e cálculo

dos resistores responsáveis pela calibração da distância dos obstáculos a serem

detectados.

4.6.2. Reconhecimento de Comandos para os Motores

Foi constatado que nem todos os comandos enviados pelos sensores eram

reconhecidos pelo microcontrolador, responsável pela detecção de obstáculos. A partir

de simulações (Capítulo 4.1) chegou-se a conclusão que o problema era de hardware, e

após visualizar no osciloscópio foi encontrado um pico de interferência no pino

responsável pelo envio de comandos aos motores, como mostrado na figura 4.8.

Figura 4. 8: Interferência no microcontrolador.

Houve interferência de campos eletromagnéticos nas trilhas da placa de circuito

impresso do módulo robótico e a flutuação da energia que interferia no funcionamento

dos componentes. Foi solucionado com o aumento da largura das trilhas, com a adição

de filtros capacitivos e a separação exclusiva do controle dos motores em uma nova

placa de circuito impresso.

A figura 4.9 mostra o sinal após as correções descritas anteriormente.

Page 52: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

52

Figura 4. 9: Sinal sem interferência.

Com esta diminuição de interferência foi possível o microcontrolador reconhecer os

níveis lógicos e assim executar de forma correta o algoritmo de detecção de obstáculos.

4.6.3. Sincronia das Antenas

Como mencionado no capítulo 3, foi utilizado um microcontrolador com interface

USB (via pinos específicos D+ e D-, Capítulo 2) para efetuar a comunicação entre a

antena e o software do PC. Conforme figura 4.10.

Figura 4. 10: Módulo base.

Desenvolveu-se uma interface serial com comunicação USART que tem como

objetivo o reconhecimento do computador com o dispositivo externo (módulo base).

Page 53: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

53

Existia uma diferença de velocidade do processamento da taxa de transmissão

(baud) entre o microcontrolador do módulo base e o microcontrolador do módulo

robótico.

A possível causa para esta diferença ocorreu porque o firmware do módulo base foi

desenvolvido para atuar como uma porta de comunicação serial, mesmo o conector

físico sendo USB. Ressaltando que a velocidade de uma porta COM é menor da

velocidade de processamento do PC.

Porém levando em consideração as especificações técnicas, este tipo de problema

não deveria ocorrer, já que segundo o fabricante não existe problemas relacionados a

este tipo de incompatibilidade.

Foi corrigido após vários testes a fim de se encontrar o equilíbrio entre os dois

sistemas, diminuindo o baud do módulo base e mantendo o baud do módulo robótico.

A figura 4.11 mostra as antenas fora de sincronia.

Figura 4. 11: Antenas fora de sincronia.

A figura 4.11 demonstra em detalhes esta falta de sincronia. Sendo que o canal 1

(CH1) esta em nível lógico baixo e o canal 2 (CH2) esta transmitindo de forma aleatória

sua freqüência.

Page 54: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

54

Figura 4. 12: Antenas sincronizadas.

Já a figura 4.12 mostra ambos os sinais em nível lógico alto, indicando que as

antenas entraram em sincronia, conforme esperado segundo especificações técnicas.

Page 55: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

55

CAPÍTULO 5. CONCLUSÃO

Neste trabalho foi proposto o desenvolvimento de um novo esquema para a

reconfiguração de microcontroladores remotamente, utilizando-se o protocolo ICSP.

O sistema remoto microcontrolado continuou sua operação normal, pois o

microcontrolador B permaneceu inalterado enquanto o microcontrolador A recebeu

dados e novos programas de configuração que, após uma análise de consistência

verificou-se a informação foi efetivamente gravada pelo protocolo ICSP.

Neste projeto podem ser citadas diversas vantagens, entre elas, benefícios

econômicos devido ao baixo custo dos materiais utilizados, operabilidade por ser um

sistema embarcado regravável à distância. Além disso, o sistema apesar de propor algo

extremamente útil ao desenvolvimento de aplicações, ainda é inédito em relação à

forma de gravação de microcontroladores PIC atualmente disponível.

Este dispositivo tem uma grande flexibilidade no envio de programas diversos.

Permitindo ao usuário mudar o objetivo ou funcionamento do sistema, de acordo com a

necessidade atual do sistema. Provendo, por exemplo, a economia de energia, fazendo

com que um sistema com diversos sensores e atuadores instalados para fins específicos

sejam utilizados apenas quando necessário. Tendo assim uma grande aplicabilidade nas

mais diversas áreas, sendo que seu uso inicial será voltado para fins didáticos.

Como trabalhos futuros, é possível continuar o desenvolvimento provendo: a

comunicação entre vários módulos robóticos, a programação para realizar experimentos

com diversos algoritmos como, por exemplo, o algoritmo de aprendizagem por reforço.

Page 56: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

56

CAPÍTULO 6. REFERÊNCIAS

AKIRA KAMIMURA, HARUHISA KUROKAWA, EIICHI YOSHIDA, Member,

IEEE, SATOSHI MURATA, Member, IEEE, et al. .: Automatic Locomotion Design

and Experiments for a Modular Robotic System. In IEEE/ASME Transactions On

Mechatronics, vol. 10, no.3, June 2005.

BISHOP, OWEN.: The Robot Builder's Cookbook. Editora Newnes Publicado por

Elsevier Ltd., United Kingdom, 2007.

BROOKS, RODNEY. Robot.: The Future of Flesh & Machines. UK, Penguin, 2002,

Disponível em: <http://people.csail.mit.edu/brooks/books%20&%20movies.html

>Acesso em: mar 2009.

COSTA, EDUARDO R., GOMES MARCEL L., BIANCHI REINALDO A. C.: Um

Mini Robô Móvel Seguidor de Pistas Guiado por Visão Local. VI Simpósio

Brasileiro de Automação Inteligente, Setembro, 2003.

DATASHEET PIC18F452A, “High-Performance, Enhanced Flash Microcontrollers

with 10-Bit A/D”, Microchip Technology Inc., 2006. Disponível em: <

http://www.datasheetcatalog.com/datasheets_pdf/P/I/C/1/PIC18F452.shtml> Acesso

em: fev 2009.

DATASHEET PIC18F4550A, “High-Performance, Enhanced Flash

Microcontrollers with 10-Bit A/D”, Microchip Technology Inc., 2006. Disponível em:

< http://www.datasheetcatalog.com/datasheets_pdf/P/I/C/1/PIC18F4550.shtml> Acesso

em: fev 2009.

DATASHEET 24FC512, “512K I2C™ CMOS Serial EEPROM”, Microchip

Technology Inc., 2004. Disponívele em: <

http://ww1.microchip.com/downloads/en/devicedoc/21754G.pdf> Acesso em: fev 2009.

DATASHEET AK360/12-R44. Disponível em:

<http://www.motores.akiyama.com.br/pdf/AK360%2012%20-%20R44.pdf> Acesso

em: out 2008.

HORENSTEIN, MARK N., “Microeletrônica circuitos & dispositivos”, Rio de

Janeiro: Prentice-Hall do Brasil, 1996.

In-Circuit Serial Programming (ICSP) Guide. Disponível em: <

http://ww1.microchip.com/downloads/en/DeviceDoc/30277d.pdf> Acesso em: maio

2008.

Intel® 64 and IA-32 Architectures Software Developer’s Manual – Volume 1:

Basic Architecture. Disponível em:

<http://www.intel.com/Assets/PDF/manual/253665.pdf> Acesso em: set 2009.

Page 57: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

57

KANTEK, PEDRO, “Inteligência Artificial”, 1ª Edição, Curitiba: Universidade

Positivo, 2007.

Microchip Technology – EEPROM: Disponível em:

<http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=2128

&param=en025151> Acesso em: out 2009.

MPLAB Integrated Development Environment . Disponível em: <

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406

&dDocName=en019469&part=SW007002> Acesso em: out 2009.

PEREIRA, FABIO, “Microcontroladores PIC : técnicas avançadas”, 2ª Edição, São

Paulo: Erica, 2002.

RUEDA, THIAGO C., SANTOS, LUCIANO M., RABELO, GIOVANNI F.: Controle

Automático do Nível de Poeira Baseado em Microcontrolador. Universidade Federal

de Lavras, Setembro 2005.

SEDRA, ADEL S. & Smith, Kenneth C., “Microeletrônica”, 4ª Edição, São Paulo:

Makron Books, 2000.

TATO Equipamentos Eletrônicos – Transmissor e Receptor de 433 MHz e 315 Mhz.

Disponível em: < http://www.tato.ind.br/files/TXMRXM.pdf> Acesso em: abr 2009.

UPENDER, BHARGAV P., KOOPMAN, PHILLIP J.: Communication Protocols for

Embedded Systems. Embedded Systems Programming, November 1994.

Wikipedia – FOTA, Disponível em: <

http://en.wikipedia.org/wiki/FOTA_(technology) > Acesso em: Dez 2009.

Wikipedia - LUX, Disponível em: < http://en.wikipedia.org/wiki/Lux> Acesso em: Jul

2009.

Wikipedia – OTA, Disponível em: < http://en.wikipedia.org/wiki/Over-the-

air_programming > Acesso em: Dez 2009.

Page 58: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

58

ANEXO A – DIAGRAMAS ESQUEMÁTICOS

Esquemático do sensor que detecta obstáculos. Há quatro sensores no módulo

robótico, sendo assim possível a detecção de todos os lados.

Circuito Impresso do Sensor

Page 59: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

59

Esquemático do Controle do Motor responsável pelo controle dos motores para

deslocamento do módulo robótico.

Circuito Impresso do Controle do Motor

Page 60: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

60

Esquemático do Modulo Robótico responsável pelo recebimento do arquivo, sua

gravação na memória e gravação através do protocolo ICSP para o segundo

microcontrolador.

Page 61: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

61

Circuito Impresso do Controle do Motor

Page 62: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

62

Esquemático do módulo base, responsável pela conexão com o PC para transmissão

de dados.

Circuito Impresso do Módulo Base

Page 63: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

63

ANEXO B – FLUXOGRAMAS

Fluxograma de Gravação ICSP.

Inicio

Endereço = 0

Lê primeiro byte

da memoria

Incrementa

Endereço

Lê segundo byte

da memoria

Armazena

primeiro byte em

Low Address

Armazena

segundo byte em

High Address

Tamanho * 18 /2

Chama gravação

Load Configuration

Incrementa

Endereço

Fim da Gravação

ICSP

Page 64: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

64

Fluxograma de Recebimento e Gravação na Memória do Módulo Robótico

Inicio

Recebe primeiro byte, ver.

Recebe segundo, ver ordem

do pacote

Decrementa

tamanho pacote

Armazena na memoria

Incrementa

endereçamento

Recebe pacote

Laço Gravação

Verifica tamanho = 0

Inicio

Endereçamento = 0

Repete 18 vezes

Page 65: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

65

ANEXO C – CÓDIGO DO PROTOCOLO ICSP

Funções Principais responsáveis pelo protocolo ICSP.

void Reset_Adress()

{

#asm

NOP

MOVLW 0x00

NOP

MOVWF TBLPTRU

NOP

MOVWF TBLPTRH

NOP

MOVWF TBLPTRL

#endasm

}

void Load_Address()

{

#asm

NOP //4-bit instruction

MOVLW Low_Address

NOP //4-bit instruction

MOVWF TBLPTRL

NOP //4-bit instruction

MOVLW High_Address

NOP //4-bit instruction

MOVWF TBLPTRH

Page 66: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

66

NOP //4-bit instruction

MOVLW Upper_Address

NOP //4-bit instruction

MOVWF TBLPTRU

#endasm

}

void load_config()

{

for(;;)

{

output_high(pin_B7);

delay_ms(100);

output_low(pin_B7);

delay_ms(100);

}

}

void Load_Configuration()

{

#asm

NOP

MOVLW 0x03

NOP

MOVWF TBLPTRU

NOP

MOVLW Low_Config_Address

NOP

MOVWF TBLPTRL

NOP

MOVLW High_Config_Address

NOP

MOVWF TBLPTRH

NOP

TBLWT*+

Page 67: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

67

#endasm

}

void Verify_Sequence()

{

#asm

TBLRD*-

TBLRD*

#endasm

}

void Read_Data()

{

#asm

TBLRD

#endasm

}

void Sequence_Programming()

{

#asm

NOP

MOVLW Low_Byte_Address

NOP

MOVWF TBLPTRL

NOP

MOVLW High_Byte_Address

NOP

MOVWF TBLPTRH

NOP

MOVLW Upper_Byte_Address

NOP

MOVWF TBLPTRU

TBLWT+*

#endasm

}

Page 68: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

68

ANEXO D – TABELA DE CUSTOS

Itens Custo Unidade Padrão Total

Mão de Obra

CEO (Coordenador) R$ 109,00 hora 80 R$ 8.720,00

Gerente Projeto

(orientador) R$ 63,50 hora 160 R$ 10.160,00

Engenheiros R$ 30,00 hora 1760 R$ 52.800,00

SubTotal R$ 71.680,00

Insumos

Laboratório R$ 7,00 m2 /mês 40 R$ 2.520,00

Mobiliário R$ 416,00 mês 9 R$ 3.744,00

Computador R$ 160,50 mês 9 R$ 1.444,50

Notebook R$ 291,50 mês 9 R$ 5.247,00

Osciloscópio R$ 410,00 mês 9 R$ 3.690,00

Ferramentas R$ 60,00 mês 9 R$ 540,00

Multímetro R$ 41,00 mês 9 R$ 369,00

Fonte R$ 140,00 mês 9 R$ 1.260,00

Gravador PIC R$ 58,00 mês 9 R$ 522,00

Antena RF R$ 20,00 mês 9 R$ 180,00

Insumos aplicados R$ 733,07 anual 1 R$ 733,07

Frete Compras R$ 30,00 anual 1 R$ 30,00

Kits(geral) R$ 15,83 mês 9 R$ 142,50

Água R$ 50,00 mês 9 R$ 450,00

Luz R$ 100,00 mês 9 R$ 900,00

Telefone / celular R$ 130,00 mês 9 R$ 1.170,00

Internet R$ 60,00 mês 9 R$ 540,00

Deslocamento R$ 16,00 mês 9 R$ 144,00

Furadeira R$ 0,45 mês 9 R$ 4,05

Prensa R$ 0,12 mês 9 R$ 1,08

SubTotal R$ 23.631,20

Documentação

Livro R$ 20,83 mês 9 R$ 187,50

Copias R$ 0,10 Copias 1500 R$ 150,00

Encadernação R$ 50,00 total 2 R$ 100,00

DVD R$ 10,00 total 1 R$ 10,00

SubTotal R$ 447,50

Page 69: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

69

Software

Windows / Office R$ 83,50 mês 9 R$ 2.254,50

Project R$ 83,50 mês 9 R$ 751,50

Visual Studio R$ 50,00 mês 9 R$ 900,00

Orcad R$ 1,90 hora 10 R$ 19,00

Proteus R$ 5,70 hora 100 R$ 570,00

Compilador C R$ 1,55 hora 200 R$ 620,00

Pic C / Mplab R$ 0,52 hora 20 R$ 10,40

SubTotal R$ 5.125,40

Total do projeto R$ 100.884,10

Impostos 35,70% R$ 56.011,86

Total Geral R$ 156.895,96

Page 70: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

70

ANEXO E – CRONOGRAMA

Page 71: Interface de Comunicação e Reconfiguração de … · de microcontroladores por meio do protocolo ICSP (In-circuit Serial Programming), com a transmissão dos dados feita via rádio

71