28.01.2013 Views

Sistema de Telemetria para Robôs Móveis Manoel - Univasf

Sistema de Telemetria para Robôs Móveis Manoel - Univasf

Sistema de Telemetria para Robôs Móveis Manoel - Univasf

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO<br />

CURSO DE GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO<br />

<strong>Manoel</strong> Alexandre Vieira<br />

SISTEMA DE TELEMETRIA PARA ROBÔS MÓVEIS<br />

Juazeiro - BA<br />

2011


UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO<br />

CURSO DE GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO<br />

<strong>Manoel</strong> Alexandre Vieira<br />

SISTEMA DE TELEMETRIA PARA ROBÔS MÓVEIS<br />

Trabalho <strong>de</strong> Conclusão <strong>de</strong> Curso apresentado<br />

à Universida<strong>de</strong> Fe<strong>de</strong>ral do Vale do São<br />

Francisco – UNIVASF, campus <strong>de</strong> Juazeiro,<br />

como requisito parcial <strong>para</strong> obtenção do título<br />

<strong>de</strong> Engenheiro da Computação.<br />

Orientador: Jadsonlee da Silva Sá.<br />

Co-orientador: Eduard Montgomery Meira<br />

Costa.<br />

Juazeiro - BA<br />

2011<br />

ii


Vieira, <strong>Manoel</strong> Alexandre.<br />

V658s <strong>Sistema</strong> <strong>de</strong> telemetria <strong>para</strong> robôs móveis / <strong>Manoel</strong> Alexandre<br />

Vieira. – – Juazeiro 2011.<br />

xv, 91 f. : il. ; 30 cm.<br />

Trabalho <strong>de</strong> Conclusão <strong>de</strong> Curso (Graduação em<br />

Engenharia da Computação) – Universida<strong>de</strong> Fe<strong>de</strong>ral do Vale do<br />

São Francisco, Campus Juazeiro-BA.<br />

Orientador: Prof. Msc. Jadsonlee da Silva Sá.<br />

1. Microcontroladores. 2. Controle automático. 3. <strong>Robôs</strong>. 4.<br />

<strong>Telemetria</strong>. 5. ZigBee. II.Título. III. Sá, Jadsonlee da Silva.<br />

CDD 621.381<br />

Ficha catalográfica elaborada pelo <strong>Sistema</strong> Integrado <strong>de</strong> Biblioteca SIBI/UNIVASF<br />

Bibliotecário: Renato Marques Alves – CRB: 5/1458.<br />

iii


DEDICATÓRIA<br />

À minha família...<br />

v


A Deus.<br />

AGRADECIMENTOS<br />

Aos meus pais, Zezinho e Helena, por terem acreditado e me apoiado em<br />

todos os momentos difíceis que passei nessa longa caminhada.<br />

Aos meus irmãos, Katyene e Kleiton, que sempre me incentivaram e<br />

<strong>de</strong>monstraram orgulho pelos meus atos.<br />

Aos meus tios, João <strong>Manoel</strong> e Auxiliadora, que foram como pais <strong>para</strong> mim e<br />

que com seu apoio e confiança me proporcionaram o melhor ambiente possível <strong>para</strong><br />

o <strong>de</strong>senvolvimentos dos meus estudos. E meus priminhos, João Victor e Jordana,<br />

por me fazerem rir nas horas que mais precisei.<br />

À Kécia e Fábio...<br />

Aos meus amigos, Jéssyka, Ivan, Milla, Tiago Fernan<strong>de</strong>s, Patrícia, Henrique,<br />

Thiago Gerson, Igo, Sérgio, Tiago <strong>de</strong> Castro, Jorge, Diego, Deleisson, Carol, Ilmara,<br />

Bárbara, Hortência Coelho, Hortência Rodrigues, Michelle e a tantos outros mais<br />

que me apoiaram e não me <strong>de</strong>ixaram <strong>de</strong>sanimar.<br />

Ao professor An<strong>de</strong>rson Luiz Fernan<strong>de</strong>s Perez por ajudar a me encontrar no<br />

curso, ter foco no meu trabalho, confiar e acreditar na minha capacida<strong>de</strong>.<br />

projeto.<br />

Ao meu orientador Jadsonlee Sá pelo empenho e <strong>de</strong>dicação <strong>para</strong> com o meu<br />

Ao meu co-orientador Eduard Montgomery pelo seu exemplo <strong>de</strong> profissional.<br />

A todos os professores e ex-professores do colegiado <strong>de</strong> Engenharia da<br />

Computação.<br />

vi


vii<br />

Muitas das gran<strong>de</strong>s realizações do mundo<br />

foram feitas por homens cansados e <strong>de</strong>sanimados<br />

que continuaram trabalhando...<br />

Desconhecido


RESUMO<br />

Neste trabalho apresenta-se o <strong>de</strong>senvolvimento <strong>de</strong> um sistema <strong>de</strong> telemetria<br />

que utiliza um carro <strong>de</strong> controle remoto como um robô móvel, o qual teve sua placa<br />

eletrônica e controle <strong>de</strong>scartados. O sistema é capaz <strong>de</strong> enviar, via rádio-frequência,<br />

comandos <strong>para</strong> o carro (ir <strong>para</strong> frente, <strong>para</strong> trás, <strong>para</strong> a direita, <strong>para</strong> a esquerda,<br />

acen<strong>de</strong>r faróis, buzinar e mudar velocida<strong>de</strong>) e receber informações sobre o ambiente<br />

no qual o carro está inserido (distância <strong>de</strong> obstáculos) e sobre o gerenciamento do<br />

sistema (como nível <strong>de</strong> bateria e velocida<strong>de</strong> instantânea).<br />

O sistema é composto por: um software <strong>de</strong> controle, que fica situado no<br />

computador e é responsável por mostrar ao usuário os comandos que po<strong>de</strong>m ser<br />

enviados e as informações recebidas do carro; e um hardware que é composto por<br />

duas placas eletrônicas, sendo uma afixada ao computador e outra ao carro.<br />

O software foi implementado utilizando a ferramenta C++ Buil<strong>de</strong>r e a API<br />

(Application Programming Interface) DCB (Data Control Block) do Windows, que<br />

acessa a porta serial <strong>para</strong> interfacear às interações do sistema com o usuário.<br />

O projeto <strong>de</strong> hardware é composto por duas placas <strong>de</strong> controle, que utilizam a<br />

tecnologia ZigBee <strong>para</strong> comunicação sem fio. A placa afixada ao carro possui um<br />

microcontrolador PIC16F877A responsável por receber/enviar<br />

comandos/informações. Um programa embarcado é responsável por gerenciar e<br />

controlar a execução <strong>de</strong> ações pre<strong>de</strong>terminadas. A placa afixada ao computador<br />

envia/recebe os comandos/informações, a fim <strong>de</strong> interfacear a comunicação entre<br />

este e o robô móvel.<br />

Palavras-chave: <strong>Telemetria</strong>, <strong>Robôs</strong> <strong>Móveis</strong>, Microcontroladores, ZigBee.<br />

viii


ABSTRACT<br />

This paper presents the <strong>de</strong>velopment of a telemetry system that uses a<br />

remote control car as a mobile robot, which had its electronic board and control<br />

discar<strong>de</strong>d. The system is able to send, via software, commands for the car (go<br />

forward, backwards, to the right, to the left, turn on headlights, honk and change the<br />

speed) and receive information on the environment in which the car is inserted<br />

(distance of obstacles) and on the management of the system (as level of battery and<br />

instantaneous speed).<br />

The system is compound by: control software, which is located in the<br />

computer and is responsible for showing the user commands that can be sent and<br />

information received of the car; and hardware that compound by two electronic<br />

boards, one affixed on the computer and the other in the car.<br />

The software was implemented using the tool C++ Buil<strong>de</strong>r and the API<br />

(Application Programming Interface) DCB (Date Control Block) of the Windows,<br />

which accesses the serial port, for interfacing with the interactions of the system and<br />

the user<br />

The hardware project is composed of two control boards, which use the<br />

ZigBee technology for wireless communication. The plate affixed to the car has a<br />

microcontroller PIC16F877A responsible for receiving/sending<br />

commands/information. An embed<strong>de</strong>d program is responsible for managing and<br />

monitoring implementation of pre<strong>de</strong>termined actions. The plate affixed to the<br />

computer sends/receives commands/information in or<strong>de</strong>r to interface the<br />

communication between this and the mobile robot.<br />

Keywords: Telemetry, Mobile Robots, Microcontrollers, ZigBee.<br />

ix


LISTA DE FIGURAS<br />

Figura 1. Diagrama <strong>de</strong> blocos do sistema. .............................................................................................................. 4<br />

Figura 2. Interação do sistema com o ambiente. .................................................................................................... 7<br />

Figura 3. Padrão TTL. ............................................................................................................................................. 11<br />

Figura 4. Disposição dos terminais do PIC 16F877A (Microchip). .......................................................................... 13<br />

Figura 5. Circuito Oscilador do PIC16F877A (MIYADAIRA, 2009). ......................................................................... 17<br />

Figura 6. Circuito MCLR (MIYADAIRA, 2009) ......................................................................................................... 19<br />

Figura 7. Saída PWM no módulo CCPx (MIYADAIRA, 2009). ................................................................................. 22<br />

Figura 8. Topologia Estrela (SILVA, 2011). ............................................................................................................. 28<br />

Figura 9. Topologia Malha (SILVA, 2011). ............................................................................................................. 29<br />

Figura 10. Topologia Árvore (SILVA, 2011). ........................................................................................................... 30<br />

Figura 11. Camadas do protocolo ZigBee (SILVA, 2011). ....................................................................................... 31<br />

Figura 12. Modulação BPSK (SANTANA, 2008). ..................................................................................................... 33<br />

Figura 13. Modulação O-QSPK (SANTANA, 2008). ................................................................................................ 33<br />

Figura 14. Estrutura dos comandos AT. ................................................................................................................. 37<br />

Figura 15. Frame <strong>de</strong> dados no modo API (XBee® ZB ZigBee® RF Modules, 2011) ................................................. 38<br />

Figura 16. Software <strong>de</strong> controle <strong>de</strong>sligado. ........................................................................................................... 40<br />

Figura 17. Software <strong>de</strong> Controle ligado e com a opção <strong>de</strong> enviar comandos pelo teclado, <strong>de</strong>sativada. .............. 41<br />

Figura 18. Botão ON/OFF e botão ativar envio <strong>de</strong> comandos pelo teclado .......................................................... 41<br />

Figura 19. Botões <strong>de</strong> direção. ................................................................................................................................ 42<br />

Figura 20. Escolha da velocida<strong>de</strong> e indicação da velocida<strong>de</strong> instantânea do carro. ............................................. 42<br />

Figura 21. Ícones <strong>de</strong> farol e buzina. ....................................................................................................................... 42<br />

Figura 22. . Indicador <strong>de</strong> nível <strong>de</strong> bateria. ............................................................................................................. 43<br />

Figura 23. Indicadores <strong>de</strong> distância. ...................................................................................................................... 43<br />

Figura 24. Rotina <strong>de</strong> Criação da Porta Serial. ........................................................................................................ 44<br />

Figura 25. Código da configuração da Porta Serial. .............................................................................................. 44<br />

Figura 26. Esquema indicando a composição do conteúdo das mensagens. ........................................................ 45<br />

Figura 27. Código da função da API do Windows que escreve na porta serial. ..................................................... 46<br />

Figura 28. Código da função que interpreta a tecla que foi pressionada. ............................................................. 47<br />

Figura 29. Código da função que interpreta a tecla que foi pressionada. ............................................................. 48<br />

Figura 30. Código da função timer, que atualiza as informações na tela do software <strong>de</strong> controle. ..................... 49<br />

Figura 31. Janela <strong>de</strong> ajuda do sistema. ................................................................................................................. 50<br />

Figura 32. Tela com informações sobre o sistema. ............................................................................................... 50<br />

Figura 33. Carro Utilizado. ..................................................................................................................................... 51<br />

Figura 34. Posicionamento dos componentes <strong>de</strong> hardware no carro. .................................................................. 52<br />

Figura 35. XBee XB24 - ZB. ..................................................................................................................................... 52<br />

Figura 36. Microcontrolador PIC16F877A. ............................................................................................................ 56<br />

Figura 37. Sonar. ................................................................................................................................................... 57<br />

Figura 38. Princípio do eco. ................................................................................................................................... 58<br />

Figura 39. Diagrama do circuito elétrico utilizado <strong>para</strong> monitorar o sonar. ......................................................... 58<br />

Figura 40. Diagrama elétrico do circuito <strong>de</strong>tector <strong>de</strong> obstáculos. ......................................................................... 60<br />

Figura 41. Gráfico Tensão x Distância <strong>para</strong> (a) o sensor um, (b) o sensor dois, (c) o sensor três, (d) o sensor<br />

quatro. ................................................................................................................................................................... 62<br />

Figura 42. (a) Roda do carro. (b) aro da roda do carro tampada com material branco........................................ 63<br />

Figura 43. Gráfico que representa o tempo inicial e <strong>de</strong> estouro do Timer1. ......................................................... 64<br />

x


Figura 44. Diagrama elétrico do circuito verificador <strong>de</strong> nível <strong>de</strong> bateria. ............................................................. 65<br />

Figura 45. Diagrama elétrico do circuito da placa afixada ao PC. ......................................................................... 67<br />

Figura 46. Diagrama elétrico do circuito conversor (Datasheet MAX232, 2010). ................................................. 68<br />

Figura 47. Dados na forma serial. ......................................................................................................................... 69<br />

Figura 48. Diagrama elétrico do circuito da placa afixada ao carro. .................................................................... 70<br />

Figura 49. Ponte H. ................................................................................................................................................ 71<br />

Figura 50. Funcionamento da Ponte H. ................................................................................................................. 72<br />

Figura 51. Rotina que habilita as interrupções. ..................................................................................................... 73<br />

Figura 52. Função <strong>para</strong> capturar as interrupções provindas da porta serial......................................................... 73<br />

Figura 53. Função validar protocolo. ..................................................................................................................... 74<br />

Figura 54. Definir ação. ......................................................................................................................................... 75<br />

Figura 55. Função do Nível <strong>de</strong> Bateria. .................................................................................................................. 76<br />

Figura 56. Função do sensor <strong>de</strong> distância. ............................................................................................................. 76<br />

Figura 57. Função protocolarEnviar(). ................................................................................................................... 77<br />

Figura 58. Placa PAPC. ........................................................................................................................................... 78<br />

Figura 59. Placa PAC. ............................................................................................................................................. 79<br />

Figura 60. Sensores <strong>de</strong> obstáculo afixados ao chassi do carro. ............................................................................. 80<br />

Figura 61. Sensor <strong>de</strong> velocida<strong>de</strong>. ........................................................................................................................... 80<br />

Figura 62. Sensores e Sonar afixados na parte dianteira do chassi do caro. ......................................................... 81<br />

Figura 63. Sensores e Sonar afixados ao chassi do caro. ....................................................................................... 81<br />

Figura 64. (a) Sensor traseiro-esquerdo e sonar traseiro, (b) sensor traseiro direito e sonar traseiro. (c) vista <strong>de</strong><br />

frente do carro, (d) vista da PAC <strong>de</strong>ntro do carro e (e) vista lateral do carro. ...................................................... 82<br />

xi


LISTA DE TABELAS<br />

Tabela 1. Cristal x Capacitor. ................................................................................................................................. 17<br />

Tabela 2. Tipos <strong>de</strong> dispositivos lógicos. ................................................................................................................. 27<br />

Tabela 3. Descrição dos pinos dos módulos XBee/XBee-Pro (MESSIAS, 2008). .................................................. 35<br />

Tabela 4. Comandos AT <strong>para</strong> programação do XBee/XBee-ProTM (MESSIAS, 2008). .......................................... 37<br />

Tabela 5. Lista dos valores e as principais combinações <strong>de</strong> cada tecla. ................................................................ 48<br />

Tabela 6. Valores das tensões emitidas pelos sensores e suas respectivas distâncias. ......................................... 61<br />

Tabela 7. Equações <strong>de</strong> cálculo da distância <strong>para</strong> cada sensor. ............................................................................. 62<br />

Tabela 8. Funções <strong>de</strong> cada pino do PIC16F877A. .................................................................................................. 89<br />

xii


LISTA DE ABREVIATURAS E SIGLAS<br />

ADC Analog-to-Digital Converter<br />

AES Advanced Encryption Standard<br />

API Application Programming Interface<br />

BOR Brown-out Reset<br />

BPSK Binary Phase Shift Keying<br />

CCD Charge-Coupled Device<br />

CI Circuito Integrado<br />

CMOS Complementary Metal-Oxi<strong>de</strong>-Semiconductor<br />

CSMA/CA Carrier Sense Multiple Access – Colision Avoidance<br />

DC Direct Current<br />

DCB Data Control Block<br />

DSSS Direct Sequence Spread Spectrum<br />

EEPROM Eletrically-Erasable Programable Read-Only Memory<br />

FFD Full Function Device<br />

GPIO General Purpose Input/Output<br />

GPR General Purpose Registers<br />

IR Infra Red<br />

ITU International Telecomunications Union<br />

MAC Medium Access Control<br />

MCLR Master Clear Reset<br />

NASA National Aeronautics and Space Administration<br />

OEM Original Equipment Manufacture<br />

O-QSPK Offset Quadrature Phase Shift Keying<br />

xiii


OSI Open System Interconection<br />

PAC Placa Afixada ao Carro<br />

PAPC Placa Afixada ao PC<br />

PC Personal Computer<br />

PHY Physical<br />

POR Power-on Reset<br />

PWM Pulse-Width Modulation<br />

RAM Random Acces Memory<br />

RF Rádio-frequência.<br />

RFD Reduced Function Device<br />

RIA Robot Institute of America<br />

RRB Radio Regulations Board<br />

RTU Remote Terminal Unit<br />

SAPC Software <strong>de</strong> Aplicação no Computador<br />

SFR Special Function Registers<br />

TTL Transistor-Transistor Logic<br />

UART Universal Asynchronous Receiver/Transmitter<br />

ULA Arithmetic Logic Unit<br />

USART Universal Synchronous Asynchronous Receiver Transmitter<br />

WARC World Administrative Radio Conference<br />

WDT Watch Dog Timer<br />

xiv


SUMÁRIO<br />

1 CONTEXTUALIZAÇÃO ............................................................................................................................ 1<br />

1.1 OBJETIVOS ............................................................................................................................................ 3<br />

1.1.1 Objetivos Gerais .............................................................................................................. 3<br />

1.1.2 Objetivos Específicos ....................................................................................................... 5<br />

2 REVISÃO BIBLIOGRÁFICA .................................................................................................................... 6<br />

2.1 ROBÓTICA MÓVEL ................................................................................................................................ 6<br />

2.2 SISTEMA DE TELEMETRIA..................................................................................................................... 7<br />

2.3 MICROCONTROLADORES ...................................................................................................................... 8<br />

2.3.1 Pinagem ......................................................................................................................... 12<br />

2.3.2 Memória <strong>de</strong> Dados ........................................................................................................ 14<br />

2.3.3 Memória <strong>de</strong> Programa .................................................................................................. 14<br />

2.3.4 Oscilador ........................................................................................................................ 15<br />

2.3.5 <strong>Sistema</strong> <strong>de</strong> Reset ........................................................................................................... 18<br />

2.3.6 Interrupções .................................................................................................................. 19<br />

2.3.7 USART ............................................................................................................................ 20<br />

2.3.8 Módulo PWM ................................................................................................................ 21<br />

2.4 RÁDIO .................................................................................................................................................. 22<br />

2.5 ZIGBEE ................................................................................................................................................ 25<br />

2.5.1 Introdução ..................................................................................................................... 25<br />

2.5.2 Modos <strong>de</strong> Operação da Re<strong>de</strong> ZigBee ............................................................................ 27<br />

2.5.3 Topologias <strong>de</strong> Re<strong>de</strong> ....................................................................................................... 28<br />

2.5.4 Arquitetura do Protocolo ZigBee/IEEE 802.15.4 ........................................................... 30<br />

2.5.5 Características Técnicas................................................................................................. 32<br />

2.5.6 Módulos ZigBee ............................................................................................................. 34<br />

2.5.7 Como Configurar e Usar os Módulos XBee/XBee-Pro TM .............................................. 35<br />

3 MATERIAIS E MÉTODOS ...................................................................................................................... 40<br />

3.1 SOFTWARE ............................................................................................................................................ 40<br />

3.1.1 Software <strong>de</strong> Controle .................................................................................................... 40<br />

3.2 HARDWARE .......................................................................................................................................... 51<br />

3.2.1 Carro <strong>de</strong> Controle .......................................................................................................... 51<br />

3.2.2 XBee XB24-ZB TM ............................................................................................................. 52<br />

3.2.3 Microcontrolador PIC16F877A ...................................................................................... 55<br />

3.2.4 Sonar ............................................................................................................................. 56<br />

3.2.5 Sensor <strong>de</strong> Obstáculos .................................................................................................... 60<br />

3.2.6 Sensor <strong>de</strong> Velocida<strong>de</strong> .................................................................................................... 63<br />

3.2.7 Circuito <strong>de</strong> Nível <strong>de</strong> Bateria ........................................................................................... 65<br />

3.2.8 Circuito da Placa Afixada ao PC (PAPC) ......................................................................... 67<br />

3.2.9 Circuito da Placa Afixada ao Carro (PAC) ...................................................................... 69<br />

4 RESULTADOS E DISCUSSÃO ................................................................................................................ 78<br />

5 CONCLUSÃO ............................................................................................................................................. 83<br />

5.1 TRABALHOS FUTUROS ........................................................................................................................ 83<br />

6 REFERÊNCIAS .......................................................................................................................................... 85<br />

7 ANEXOS ..................................................................................................................................................... 89<br />

xv


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 1<br />

1 Contextualização<br />

A necessida<strong>de</strong> <strong>de</strong> monitorar e controlar processos a distância (p. ex.<br />

ambientes, máquinas entre outros) se aplica quando os processos são perigosos,<br />

insalubres ou não favorecem a existência da vida humana, e quando existe a<br />

necessida<strong>de</strong> <strong>de</strong> realizar um controle mais complexo. <strong>Sistema</strong>s capazes <strong>de</strong><br />

realizarem tais ativida<strong>de</strong>s são chamados <strong>de</strong> sistemas <strong>de</strong> telemetria.<br />

A palavra telemetria é <strong>de</strong> origem grega, sendo que tele significa longe,<br />

remoto, e metron, significa medida (DIAS, 1992). <strong>Telemetria</strong> é uma tecnologia que<br />

permite a medição e comunicação <strong>de</strong> informações <strong>de</strong> interesse do operador ou<br />

<strong>de</strong>senvolvedor <strong>de</strong> sistemas, ou seja, é a transferência (via re<strong>de</strong> com fio ou sem fio) e<br />

utilização <strong>de</strong> dados provindos <strong>de</strong> uma ou várias máquinas remotas, distribuídas em<br />

uma área geográfica <strong>de</strong> forma pré-<strong>de</strong>terminada <strong>para</strong> o seu monitoramento, medição<br />

e controle (BRANCO, 2006).<br />

Nas últimas décadas, a utilização <strong>de</strong> sistemas <strong>de</strong> telemetria baseados em<br />

robôs móveis tem sido objeto <strong>de</strong> muitas pesquisas <strong>de</strong>vido à sua utilida<strong>de</strong> em<br />

diversas aplicações (KIM, 2000). O campo <strong>de</strong> utilização <strong>de</strong> robôs móveis é vasto e<br />

vem ganhando espaço em gran<strong>de</strong>s proporções, principalmente pela capacida<strong>de</strong> <strong>de</strong><br />

respon<strong>de</strong>r a sinais e sensores em locais remotos (GUERRA, 2009). Exemplos <strong>de</strong><br />

sistemas <strong>de</strong> telemetria po<strong>de</strong>m ser encontrados em diversas áreas, tais como:<br />

� Monitoramento <strong>de</strong> carros da Fórmula 1 – A aquisição <strong>de</strong> diversas<br />

gran<strong>de</strong>zas (tais como, velocida<strong>de</strong>, nível <strong>de</strong> gasolina, temperatura entre<br />

outros) é importante <strong>para</strong> que a equipe <strong>de</strong> engenheiros possa estudar os<br />

dados e escolher uma melhor estratégia na corrida (MARIANO, 2010).<br />

� Erupções vulcânicas - Po<strong>de</strong>m ser previstas utilizando alguns meios <strong>de</strong><br />

estudo e observações <strong>de</strong>ntro <strong>de</strong> suas crateras e nos seus arredores. Com<br />

estas informações po<strong>de</strong>-se prever quando uma erupção ocorrerá e assim<br />

tomar medidas <strong>para</strong> a proteção dos seres que por ventura habitam as<br />

proximida<strong>de</strong>s on<strong>de</strong> será atingido pela lava. Um exemplo <strong>de</strong> robô móvel


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 2<br />

com sistema <strong>de</strong> telemetria <strong>para</strong> tal aplicação é o hexápo<strong>de</strong> Dante, o qual<br />

foi construído pela NASA em 1994 em uma parceria entre a Carnegie<br />

Mellon University e o observatório <strong>de</strong> vulcões do Alaska (LEMONICK,<br />

1994).<br />

� A exploração <strong>de</strong> planetas – A utilização <strong>de</strong> robôs móveis <strong>para</strong> busca <strong>de</strong><br />

vestígios que comprovem a existência <strong>de</strong> vida em outros planetas. Por<br />

exemplo, o robô móvel Rover Soujorner, criado pela NASA (National<br />

Aeronautics and Space Administration), explorou o planeta Marte em<br />

1997. Este robô possuía autonomia limitada e por isso necessitava que<br />

comandos fossem enviados pelos controladores da missão. Outro<br />

exemplo <strong>de</strong> robô explorador é o Rover Spirit, que é um jipe-robô com<br />

função <strong>de</strong> explorar o solo marciano seguindo or<strong>de</strong>ns enviadas da Terra.<br />

Esse robô recebe todas as manhãs uma lista <strong>de</strong> tarefas que <strong>de</strong>vem ser<br />

efetuadas naquele dia. Entre as funcionalida<strong>de</strong>s <strong>de</strong>ste robô estão a<br />

inspeção química do solo e rochas e uma fura<strong>de</strong>ira <strong>para</strong> a obtenção <strong>de</strong><br />

material <strong>para</strong> análise. O sistema embarcado <strong>de</strong>sse robô também toma<br />

<strong>de</strong>cisões que não po<strong>de</strong>m esperar um telecomando, como por exemplo,<br />

<strong>para</strong>r ao <strong>de</strong>tectar um buraco na sua frente, pois enviar um sinal à central<br />

na Terra <strong>de</strong>mandaria muito tempo o que po<strong>de</strong>ria ocasionar a queda do<br />

robô. Por outro lado, outras atitu<strong>de</strong>s <strong>de</strong>vem esperar pelo telecomando,<br />

como por exemplo, a hora certa <strong>de</strong> perfurar uma <strong>de</strong>terminada rocha<br />

(STONE, 1996).<br />

A telemetria também é utilizada na área biológica permitindo, por exemplo a<br />

coleta <strong>de</strong> dados biológicos <strong>de</strong> animais aquáticos (ABECASSIS, 2010), o<br />

monitoramento <strong>de</strong> máquinas agrícolas usadas no plantio, cultivo e colheita <strong>de</strong><br />

produtos (PIOVESAN, 2008), entre outras.<br />

Dentro <strong>de</strong>ste contexto, focaremos no <strong>de</strong>senvolvimento <strong>de</strong> um sistema básico<br />

<strong>de</strong> telemetria utilizando um robô móvel, o qual po<strong>de</strong>rá ser utilizado como base nas<br />

ativida<strong>de</strong>s <strong>de</strong> ensino (consolidar os conceitos envolvendo robótica móvel,<br />

instrumentação eletrônica, sistemas embarcados e microcontrolados em disciplinas


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 3<br />

dos cursos <strong>de</strong> Engenharia da Computação e Elétrica) e pesquisa (p. ex,<br />

<strong>de</strong>senvolvimento <strong>de</strong> carros guiados remotamente <strong>para</strong> realizar tarefas <strong>de</strong> vigilância).<br />

1.1 Objetivos<br />

Nesta seção são <strong>de</strong>scritos os objetivos gerais e específicos <strong>para</strong> o<br />

<strong>de</strong>senvolvimento do projeto do sistema <strong>de</strong> telemetria <strong>para</strong> robôs móveis.<br />

1.1.1 Objetivos Gerais<br />

Neste projeto foi <strong>de</strong>senvolvido um sistema <strong>de</strong> telemetria utilizando um robô<br />

móvel capaz <strong>de</strong> processar comandos e enviar informações provenientes <strong>de</strong><br />

sensores <strong>para</strong> um computador utilizando o protocolo <strong>de</strong> comunicação sem fio<br />

ZigBee. A base <strong>de</strong> <strong>de</strong>senvolvimento foi um carro <strong>de</strong> brinquedo <strong>de</strong> controle remoto. A<br />

escolha foi motivada pelo fato <strong>de</strong> a parte mecânica do carro (motores, rodas e o<br />

chassi), necessária <strong>para</strong> a locomoção estar parcialmente pronta. A placa eletrônica e<br />

o controle remoto que vieram no carro foram <strong>de</strong>scartados <strong>para</strong> darem espaço à<br />

placa e ao controle <strong>de</strong>senvolvido no projeto.<br />

O sistema <strong>de</strong>senvolvido, conforme representado na Figura 1, é constituído por<br />

três subsistemas: Software <strong>de</strong> Aplicação no Computador (SAPC); Placa <strong>de</strong><br />

Envio/Recepção Afixada ao Computador (PAPC) e Placa <strong>de</strong> Envio/Recepção<br />

Afixada ao Carro (PAC).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 4<br />

Figura 1. Diagrama <strong>de</strong> blocos do sistema.<br />

O Software <strong>de</strong> Aplicação (SAPC) foi <strong>de</strong>senvolvido na linguagem C++<br />

utilizando a ferramenta C++ Buil<strong>de</strong>r. O programa tem como funcionalida<strong>de</strong><br />

apresentar ao usuário as ações implementadas que po<strong>de</strong>rão ser enviadas ao carro,<br />

tais como: andar <strong>para</strong> frente, <strong>para</strong> trás, <strong>para</strong> a direita, <strong>para</strong> a esquerda, alterar a<br />

velocida<strong>de</strong> do carro, buzinar e acen<strong>de</strong>r os faróis. É capaz <strong>de</strong> apresentar na interface<br />

<strong>de</strong> aplicação, informações <strong>de</strong> <strong>de</strong>tecção <strong>de</strong> obstáculos, monitoramento do nível <strong>de</strong><br />

bateria e velocida<strong>de</strong> do carro. Os comandos po<strong>de</strong>rão ser enviados ao clicar o cursor<br />

do mouse sobre os botões que aparecem na aplicação. Além disso, existe a<br />

funcionalida<strong>de</strong> <strong>de</strong> enviar comandos a partir do teclado do computador. Dicas <strong>de</strong><br />

ajuda po<strong>de</strong>rão ser encontradas ao clicar no ícone “Ajuda” no menu do programa.<br />

A Placa Afixada ao Computador (PAPC) é constituída pelo XBee XB24-ZB<br />

(XBee® ZB ZigBee® RF Modules, 2011) e o CI MAX232. Esta placa é responsável<br />

pela comunicação via RF com a placa afixada ao carro e pela comunicação serial<br />

com o software <strong>de</strong> aplicação do PC. A escolha pelo módulo ZigBee <strong>de</strong>u-se pelo fato<br />

<strong>de</strong> ser um dispositivo <strong>de</strong> baixo custo, que consome pouca energia, não há perda <strong>de</strong>


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 5<br />

sinal (<strong>de</strong>ntro da área máxima <strong>de</strong> atuação, <strong>de</strong> 120 m, do dispositivo especificada pelo<br />

fabricante) e po<strong>de</strong> ser feita encriptação dos dados.<br />

A Placa Afixada ao Carro (PAC) é constituída pelo XBee XB24-ZB, pelo<br />

microcontrolador PIC16F877A, sensores (sonar, sensor infravermelho e sensor <strong>de</strong><br />

velocida<strong>de</strong>), motores, faróis, buzina e o firmware embarcado no PIC16F877A. Esta<br />

placa recebe os comandos enviados pela PAPC e, após interpretar as informações,<br />

executa ações pré-<strong>de</strong>terminadas. Além disto, esta placa transmite periodicamente<br />

<strong>para</strong> a SAPC informações das gran<strong>de</strong>zas adquiridas pelos sensores.<br />

Escolhemos o microcontrolador PIC16F877A, pois este dispositivo já possui<br />

em sua arquitetura interna blocos específicos <strong>para</strong> a recepção e envio <strong>de</strong> dados<br />

seriais. Outro fator <strong>de</strong>cisivo <strong>para</strong> o uso foi a disponibilida<strong>de</strong> <strong>de</strong> uso, por haver um<br />

número significativo <strong>de</strong>stes componentes nos laboratórios da universida<strong>de</strong>.<br />

1.1.2 Objetivos Específicos<br />

Partindo do objetivo geral, os seguintes objetivos específicos foram<br />

estabelecidos:<br />

� Implementação do software <strong>de</strong> aplicação, com interface amigável, <strong>para</strong><br />

manipular a porta serial do computador, enviar os comandos <strong>para</strong> o robô<br />

móvel e receber informações do mesmo;<br />

� Análise e ajuste da arquitetura do carro utilizado, <strong>para</strong> afixar a placa <strong>de</strong><br />

controle;<br />

� Construção das placas <strong>de</strong> controle (PAPC e PAC);<br />

� Implementação do programa embarcado no microcontrolador.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 6<br />

2 Revisão Bibliográfica<br />

2.1 Robótica Móvel<br />

Po<strong>de</strong>-se <strong>de</strong>finir um sistema robótico <strong>de</strong> acordo com a sua aplicação. A RIA<br />

(Robot Institute of America) <strong>de</strong>fine robô como sendo um manipulador re-<br />

programável, multifuncional, projetado <strong>para</strong> mover materiais, peças, ferramentas ou<br />

dispositivos especiais, em movimentos variáveis, programados <strong>para</strong> a realização <strong>de</strong><br />

uma varieda<strong>de</strong> <strong>de</strong> tarefas. Eles po<strong>de</strong>m ser divididos em (GUERRA, 2009):<br />

� <strong>Robôs</strong> Manipulados: são dispositivos com vários graus <strong>de</strong> liberda<strong>de</strong> e<br />

operados manualmente;<br />

� <strong>Robôs</strong> <strong>de</strong> Sequência Fixa: são dispositivos manipuladores que<br />

<strong>de</strong>sempenham tarefas sucessivas <strong>de</strong> acordo com um método<br />

pre<strong>de</strong>terminado e imutável, muito difícil <strong>de</strong> ser modificado;<br />

� <strong>Robôs</strong> <strong>de</strong> Sequência Variável: dispositivos que <strong>de</strong>sempenham tarefas<br />

sucessivas que po<strong>de</strong>m ser facilmente modificadas;<br />

� <strong>Robôs</strong> Repetitivos: são dispositivos que repetem uma sequência <strong>de</strong><br />

tarefas gravadas, e são conduzidos ou controlados por um operador<br />

humano;<br />

� <strong>Robôs</strong> <strong>de</strong> Controle Numérico: o operador alimenta o robô com um<br />

programa <strong>de</strong> movimentação ao invés <strong>de</strong> treiná-lo manualmente;<br />

� <strong>Robôs</strong> Inteligentes: apresentam capacida<strong>de</strong> <strong>de</strong> compreen<strong>de</strong>r seu<br />

ambiente e a habilida<strong>de</strong> <strong>de</strong> executar tarefas apesar das mudanças que se<br />

apresentam no seu meio.<br />

O robô interage com o ambiente em que esta inserido, como ilustrado na<br />

Figura 2, através <strong>de</strong> ciclos <strong>de</strong>nominados <strong>de</strong> percepção-ação. Através dos sensores


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 7<br />

ele obtém informações sobre o ambiente as quais são processadas a fim <strong>de</strong> se<br />

<strong>de</strong>terminar a ação a ser executada através dos atuadores.<br />

Figura 2. Interação do sistema com o ambiente.<br />

Pieri (2002) classifica os robôs móveis segundo sua anatomia, tipo <strong>de</strong><br />

controle e funcionalida<strong>de</strong>. Segundo a anatomia po<strong>de</strong>m ser aéreos, aquáticos ou<br />

terrestres, e ainda nessa última classificação po<strong>de</strong>m ser subdivididos em robôs com<br />

rodas, esteiras ou pernas. Quanto ao tipo <strong>de</strong> controle po<strong>de</strong>m estar em uma das três<br />

categorias: teleoperados (o operador controla os movimentos do robô); semi-<br />

autônomos (o operador indica o comando e o robô o faz sozinho); ou autônomos<br />

(realiza as tarefas tomando <strong>de</strong>cisões pré-programadas). Segundo a funcionalida<strong>de</strong><br />

po<strong>de</strong>m ser industriais, <strong>de</strong> serviço, <strong>de</strong> campo ou pessoais.<br />

A construção <strong>de</strong> um robô móvel envolve diversos problemas, <strong>de</strong>ntre os quais<br />

po<strong>de</strong>mos <strong>de</strong>stacar os erros <strong>de</strong> orientação, erros nas leituras dos sensores, erros no<br />

próprio programa embarcado, entre outros, que po<strong>de</strong>m ser amenizados tendo um<br />

bom projeto <strong>de</strong> implementação robótica.<br />

2.2 <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong><br />

Entre os motivos <strong>para</strong> a utilização <strong>de</strong> sistemas <strong>de</strong> telemetria <strong>de</strong>staca-se o fato<br />

<strong>de</strong> gran<strong>de</strong> parte dos equipamentos produzidos possuírem um microcontrolador que<br />

executa tarefas <strong>de</strong> controle e monitoramento (VISSOTO, 2004).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 8<br />

Muitas empresas dispen<strong>de</strong>m uma enorme quantida<strong>de</strong> <strong>de</strong> dinheiro<br />

monitorando equipamentos manualmente. Com o uso da telemetria, além <strong>de</strong> reduzir<br />

custos e aumentar a eficiência dos seus sistemas, elas inserem a empresa no<br />

mercado ajudando-as a enten<strong>de</strong>r as necessida<strong>de</strong>s dos seus clientes <strong>para</strong> assim<br />

ofertarem novos produtos.<br />

Segundo Vissotto (2004) os sistemas <strong>de</strong> telemetria po<strong>de</strong>m ser compostos por<br />

quatro elementos básicos:<br />

� Máquinas Inteligentes e Sensores: aparelhos que monitoram, controlam e<br />

me<strong>de</strong>m algum tipo <strong>de</strong> ativida<strong>de</strong> localmente. Po<strong>de</strong>m existir vários sensores<br />

em um <strong>de</strong>terminado local;<br />

� Interface da Aplicação: interface entre os sensores e a re<strong>de</strong> <strong>de</strong><br />

comunicação. Para aplicações remotas, refere-se à Unida<strong>de</strong> <strong>de</strong> Terminal<br />

Remota (RTU - Remote Terminal Unit);<br />

� Base <strong>de</strong> Comunicação (Backbone): o sistema po<strong>de</strong> ser por linhas fixas<br />

(landline) ou rádio, e transmitir informações dos sensores através da<br />

interface da aplicação <strong>para</strong> um computador central <strong>de</strong> comando e um<br />

centro <strong>de</strong> controle;<br />

� Centro <strong>de</strong> Controle e Comando: este é o ponto central que recebe os<br />

dados transmitidos pelos sensores. A informação é processada, po<strong>de</strong>ndo<br />

ser disseminada <strong>para</strong> diferentes locações através da internet.<br />

2.3 Microcontroladores<br />

Um microcontrolador é um dispositivo que tem o objetivo <strong>de</strong> controlar algum<br />

processo ou aspecto do ambiente. Po<strong>de</strong>-se ver isso em vários produtos<br />

eletroeletrônicos no dia-a-dia. Um exemplo bem conhecido é o forno microondas, no<br />

qual se po<strong>de</strong> programar a potência, o tempo <strong>de</strong> cozimento, a velocida<strong>de</strong> <strong>de</strong> giro do<br />

prato, entre várias outras funções. Mas, o controle vai muito além, o controlador<br />

“toma conta” <strong>para</strong> o usuário <strong>de</strong> outros itens igualmente importantes (SOLBET, 2011).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 9<br />

Segundo Rosário (2002), um microcontrolador po<strong>de</strong> ser <strong>de</strong>finido como um<br />

sistema computacional integrado, pelo fato <strong>de</strong> possuir uma unida<strong>de</strong> <strong>de</strong><br />

processamento, memória e portas <strong>de</strong> entradas e saídas em um único<br />

encapsulamento.<br />

Antigamente, os sistemas <strong>de</strong> controle eram construídos utilizando-se relês e<br />

válvulas e o programa era implementado no próprio hardware do circuito. Os custos<br />

eram elevados e por isso os controladores eram mais comumente utilizados nas<br />

gran<strong>de</strong>s indústrias. A gran<strong>de</strong> mudança ocorreu em 1970 com os primeiros<br />

microprocessadores. Embora estes dispositivos não fossem a<strong>de</strong>quados <strong>para</strong><br />

qualquer projeto, a vantagem em reprogramá-lo sem alterar o hardware foi <strong>de</strong>finitiva<br />

<strong>para</strong> projetistas <strong>de</strong> controladores utilizarem intensamente esta nova tecnologia<br />

(SOLBET, 2011).<br />

Em virtu<strong>de</strong> do mercado crescente, em torno dos microprocessadores, os<br />

fabricantes <strong>de</strong> circuitos integrados lançaram os microcontroladores. Os<br />

microcontroladores possuem <strong>de</strong>ntro do seu encapsulamento, <strong>de</strong>ntre outras<br />

funcionalida<strong>de</strong>s:<br />

� CPU (Unida<strong>de</strong> Central <strong>de</strong> Processamento);<br />

� Memória RAM (Memória <strong>de</strong> Acesso Randômico);<br />

� EPROM (e suas modificações EEPROM, ROM, PROM);<br />

� Memória somente <strong>de</strong> leitura;<br />

� Pinos <strong>de</strong> E/S (entrada e saída digitais e analógicas);<br />

� Temporizadores;<br />

� Controladores <strong>de</strong> interrupção.<br />

Após o surgimento do microcontrolador a um baixo custo, porém mais<br />

confiáveis, os sistemas mecânicos, que eram largamente utilizados, tornaram-se<br />

obsoletos e foram rapidamente substituídos. Assim, conhecer esse novo dispositivo<br />

que se tornava tão presente em nossas vidas se tornou uma necessida<strong>de</strong> <strong>para</strong>


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 10<br />

qualquer projetista nas áreas <strong>de</strong> produção, <strong>de</strong>senvolvimento e manutenção <strong>de</strong><br />

circuitos eletrônicos (SOLBET, 2011).<br />

A gran<strong>de</strong> mudança ocorreu pelo fato <strong>de</strong> que agora os projetos baseados em<br />

hardware (em que cada projeto correspondia a um circuito eletrônico) foram<br />

substituídos por projetos baseados em software (nos quais o hardware básico se<br />

mantém o mesmo e a mudança acontece em nível <strong>de</strong> software).<br />

Segundo Solbet (2007), um profissional na área <strong>de</strong> circuitos, que utiliza<br />

microcontroladores, <strong>de</strong>ve ser eficiente <strong>de</strong> forma a:<br />

� Compreen<strong>de</strong>r qual dispositivo microncontrolado preten<strong>de</strong> utilizar, pois<br />

<strong>de</strong>ve-se conhecer características como memória, dispositivos <strong>de</strong> entrada e<br />

saída, velocida<strong>de</strong> <strong>de</strong> processamento, entre outras;<br />

� Ser capaz <strong>de</strong> especificar os requisitos do projeto, ou seja, estudar o<br />

ambiente o qual o sistema estará inserido, a fim <strong>de</strong> implementá-lo <strong>para</strong><br />

melhor interagir com o ambiente;<br />

� Dividir o projeto em partes menores <strong>para</strong> melhor gerenciamento.<br />

Po<strong>de</strong>-se pensar em um microcontrolador como um dispositivo composto por<br />

seis partes: memórias (memória <strong>de</strong> programa, <strong>de</strong> dados e EEPROM), portas <strong>de</strong><br />

entrada e saída, CPU (Unida<strong>de</strong> Central <strong>de</strong> Processamento), clock, temporizadores e<br />

interrupções:<br />

� Memórias: memória <strong>de</strong> programa é on<strong>de</strong> as instruções do programa, a ser<br />

executado, são armazenadas (ROSARIO, 2002). O programa é<br />

normalmente gravado uma só vez e a partir daí o microcontrolador<br />

executa apenas ele (SOLBET, 2011); memória <strong>de</strong> dados mantém<br />

informações do SFR (Special Function Registers) e do GPR (General<br />

Purpose Registers). Os SFRs estão relacionados a configuração, controle<br />

e status dos periféricos e portas <strong>de</strong> entrada e saída. Os GPRs são


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 11<br />

encarregados <strong>de</strong> armazenar e manipular os dados do usuário; memória<br />

EEPROM, é do tipo não-volátil, permite o armazenamento e manipulação<br />

dos dados e o conteúdo não é perdido mesmo se o dispositivo não esteja<br />

sendo alimentado (MIYADAIRA, 2009).<br />

� Portas <strong>de</strong> entrada e saída: é por on<strong>de</strong> o microcontrolador obtém<br />

informações externas (do ambiente). As digitais assumem valores<br />

discretos, são referenciadas como 0 ou 1, que correspon<strong>de</strong> a 0 V - 2,5 V<br />

ou 3,8 V – 5 V <strong>de</strong> saída respectivamente (SOLBET, 2011). Os valores na<br />

faixa <strong>de</strong>, aproximadamente, 2,5 V - 3,8 V são tidos como nível in<strong>de</strong>finido.<br />

A Figura 3 ilustra o padrão TTL. O valor <strong>de</strong> tensão correspon<strong>de</strong>nte ao nível<br />

lógico 1 normalmente correspon<strong>de</strong> à tensão <strong>de</strong> alimentação do<br />

microcontrolador.<br />

Figura 3. Padrão TTL.<br />

O PIC16F877A possui também portas <strong>de</strong> entrada analógica. Essas portas<br />

po<strong>de</strong>m receber sinais variáveis entre 0 e 5 Volts. Estes sinais são<br />

convertidos internamente <strong>para</strong> valores digitais.<br />

� CPU: responsável por coor<strong>de</strong>nar as ativida<strong>de</strong>s <strong>de</strong>ntro do microcontrolador.<br />

Organiza a execução das instruções e realiza as operações lógicas ou


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 12<br />

matemáticas sobre os dados, enviando os resultados <strong>para</strong> algum<br />

registrador ou dispositivos <strong>de</strong> entrada e saída (SOLBET, 2011);<br />

� Clock: é o responsável pelo sincronismo entre as operações do<br />

microcontrolador. Os eventos que <strong>de</strong>ntro do microcontrolador são<br />

processados e <strong>de</strong>terminados pela frequência do clock, assim quanto maior<br />

a frequência do clock mais rápida é a execução das instruções<br />

(MIYADAIRA, 2009). Também é utilizado como referência <strong>de</strong> tempo <strong>para</strong><br />

eventos que precisam ser repetidas em <strong>de</strong>terminados intervalos <strong>de</strong> tempo,<br />

como, por exemplo, a leitura <strong>de</strong> sinais em interfaces RS-232. Esse ciclo <strong>de</strong><br />

referência é <strong>de</strong>nominado como ciclo <strong>de</strong> máquina;<br />

� Temporizadores: são utilizados <strong>para</strong> realizar contagem <strong>de</strong> tempo. O<br />

microcontrolador possui quatro timers, que são configurados <strong>para</strong> serem<br />

incrementados por um sinal <strong>de</strong> clock interno (MIYADAIRA, 2009);<br />

� Interrupções: são causadas através <strong>de</strong> eventos assíncronos que provocam<br />

um <strong>de</strong>svio no fluxo do programa, retornando ao programa principal após a<br />

interrupção ser tratada (ROSARIO, 2002).<br />

Os dados <strong>de</strong>ntro <strong>de</strong> um microcontrolador são <strong>de</strong>nominados palavras. O<br />

PIC16F877A possui palavras <strong>de</strong> dados <strong>de</strong> oito bits <strong>de</strong> tamanho e instrução <strong>de</strong> 14<br />

bits. O comprimento da palavra permite que as instruções possam ser executadas<br />

<strong>de</strong>ntro <strong>de</strong> um ciclo <strong>de</strong> máquina, expressando assim o motivo da gran<strong>de</strong> velocida<strong>de</strong><br />

<strong>de</strong> processamento (MIYADAIRA, 2009).<br />

2.3.1 Pinagem<br />

O PIC 16F877A possui diversas formas <strong>de</strong> encapsulamento (o que po<strong>de</strong> ser<br />

visto no datasheet do mesmo), mas o formato DIP <strong>de</strong> 40 pinos é o mais indicado<br />

<strong>para</strong> <strong>de</strong>senvolver experimentos. Cada terminal (pino) tem uma ou mais funções bem<br />

<strong>de</strong>finidas, e cada um tem um nome que da a idéia da função <strong>de</strong>signada ao pino.<br />

Para o microcontrolador comportar um maior número possível <strong>de</strong> periféricos, alguns<br />

pinos foram multiplexados, ou seja, alguns pinos possuem mais <strong>de</strong> uma função.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 13<br />

Para selecionar a função <strong>de</strong>sejada a configuração do PIC <strong>de</strong>ve ser feita durante a<br />

programação (SOLBET, 2011). Os terminais do PIC16F877A são apresentados na<br />

Figura 4.<br />

Figura 4. Disposição dos terminais do PIC 16F877A (Microchip).<br />

Neste momento, o PIC será como uma “caixa preta”. Funcionalmente,<br />

po<strong>de</strong>mos agrupar os terminais nos seguintes grupos:<br />

� Alimentação;<br />

� Entrada/Saída;<br />

� Clock;<br />

� Controle.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 14<br />

A alimentação <strong>de</strong>ve ser preferencialmente 5 Volts <strong>para</strong> facilitar a interface<br />

com integrados da família lógica TTL. Os terminais 11 e 32 <strong>de</strong>vem receber a tensão<br />

<strong>de</strong> alimentação e os terminais 12 e 31 <strong>de</strong>vem ser ligados ao terra do circuito. O<br />

nome e a função <strong>de</strong> cada um dos pinos estão indicados na Tabela 8 na Seção<br />

Anexos.<br />

2.3.2 Memória <strong>de</strong> Dados<br />

A memória <strong>de</strong> dados (também conhecida como memória RAM) serve <strong>para</strong><br />

guardar variáveis e os registradores utilizados pelo programa. Esta memória<br />

armazena dados <strong>de</strong> 8 bits. Po<strong>de</strong>-se ainda dividi-la em dois grupos: registradores<br />

especiais (SFR) e registradores <strong>de</strong> propósito geral (GPR).<br />

Os registradores especiais são usados pelo microcontrolador <strong>para</strong> a execução<br />

do programa e processamentos da ULA. Esses registradores po<strong>de</strong>m ser escritos e<br />

lidos tanto pelo usuário quanto pelo hardware e servem também <strong>para</strong> a configuração<br />

<strong>de</strong> muitas funções e <strong>para</strong> a utilização <strong>de</strong> todos os periféricos. Vale salientar que<br />

cada registrador especial tem um en<strong>de</strong>reço específico, mas não é preciso se<br />

preocupar com seu en<strong>de</strong>reçamento, pois o compilador permite o acesso direto por<br />

nome ou encapsulado por funções a cada registrador (ROSÁRIO, 2002).<br />

As áreas <strong>de</strong>stinadas, pelo usuário, <strong>para</strong> armazenamento <strong>de</strong> variáveis <strong>de</strong><br />

escrita e leitura, são <strong>de</strong>nominadas <strong>de</strong> registradores <strong>de</strong> uso geral. O PIC16F877A<br />

possui 368 bytes disponíveis <strong>para</strong> o uso geral. Portanto, seu programa não po<strong>de</strong>rá<br />

manipular mais dados que esse limite. Esse fato frisa a necessida<strong>de</strong> <strong>de</strong> escrever<br />

códigos eficientes e que trabalhem com poucas variáveis (MIYADAIRA, 2009).<br />

2.3.3 Memória <strong>de</strong> Programa<br />

A memória <strong>de</strong> programa do PIC 16F877A é <strong>de</strong> 14 bits do tipo Flash, uma<br />

memória regravável eletronicamente com escrita rápida. Essa memória po<strong>de</strong> ser<br />

dividida em algumas partes básicas (MIYADAIRA, 2009):


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 15<br />

� Vetor <strong>de</strong> Reset, que é o primeiro en<strong>de</strong>reço da memória <strong>de</strong> programa que<br />

será executado após o Start-up ou Reset. Esse vetor se encontra no<br />

en<strong>de</strong>reço 0x0000;<br />

� Vetor <strong>de</strong> interrupção, o qual é um recurso <strong>de</strong> baixo nível utilizado<br />

2.3.4 Oscilador<br />

frequentemente ao se trabalhar com o PIC. O mo<strong>de</strong>lo utilizado possui 15<br />

tipos diferentes <strong>de</strong> interrupções. Entretanto, quando qualquer uma <strong>de</strong>las<br />

acontece (consi<strong>de</strong>rando todas as condições necessárias favoráveis), o<br />

programa será <strong>de</strong>sviado <strong>para</strong> um ponto específico, <strong>de</strong>nominado vetor <strong>de</strong><br />

interrupção. Nesse local <strong>de</strong>vem ser adicionadas rotinas que tratarão a<br />

interrupção lançada.<br />

2.3.4.1 Ciclo <strong>de</strong> máquina<br />

Todo circuito sequencial como um microcontrolador necessita <strong>de</strong> um clock<br />

<strong>para</strong> funcionar, no caso dos microprocessadores esse clock é disponibilizado por um<br />

circuito oscilador interno. No PIC, uma fonte externa é responsável por fornece o<br />

clock que normalmente é composto por um cristal <strong>de</strong> quartzo, um circuito RC ou um<br />

ressonador cerâmico. O mais importante é esse clock interno e seu respectivo<br />

período (1/CLKint), que é o tempo <strong>de</strong> duração <strong>de</strong> um ciclo <strong>de</strong> máquina (MIYADAIRA,<br />

2009).<br />

O motivo <strong>para</strong> ocorrer a divisão do clock é que <strong>para</strong> a execução <strong>de</strong> uma única<br />

instrução <strong>de</strong> máquina vários ciclos são necessários. Como não há processamento<br />

<strong>para</strong>lelo, o clock externo é dividido em quatro ciclos necessários <strong>para</strong> a execução <strong>de</strong><br />

uma única instrução <strong>de</strong> máquina. Essa técnica conhecida como pipeline melhora a<br />

velocida<strong>de</strong> <strong>de</strong> execução do PIC.<br />

Para melhor entendimento, Miyadaira (2009) exemplifica:<br />

Consi<strong>de</strong>rando o clock do microcontrolador como sendo <strong>de</strong> 20 MHz (fosc = 20<br />

MHz), o ciclo <strong>de</strong> máquina será:


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 16<br />

O que correspon<strong>de</strong> a uma frequência <strong>de</strong> ciclo <strong>de</strong> máquina igual a:<br />

2.3.4.2 Configurações do Oscilador<br />

Quatro tipos <strong>de</strong> osciladores po<strong>de</strong>m ser usados com o PIC16F877A. Estes<br />

dispositivos fazem com que o circuito funcione em uma gran<strong>de</strong> faixa <strong>de</strong> frequência,<br />

que varia <strong>de</strong> 32 KHz a 10 MHz. Os dispositivos osciladores po<strong>de</strong>m ser os seguintes<br />

(SOLBET, 2011):<br />

� Osciladores a cristal <strong>de</strong> baixa potência (LP);<br />

� Osciladores a cristal/ressonadores cerâmicos convencionais (XT);<br />

� Osciladores a cristal/ressonadores cerâmicos <strong>de</strong> alta frequência (HS);<br />

� Osciladores a Resistor/Capacitor (RC).<br />

O oscilador <strong>de</strong>ve ser escolhido <strong>de</strong> acordo com a necessida<strong>de</strong> <strong>de</strong> cada<br />

aplicação. Por exemplo, se as temporizações do programa não são criticas (p. ex.<br />

em projetos <strong>de</strong> alarmes), po<strong>de</strong>-se usar o oscilador RC. Se o projeto necessita <strong>de</strong><br />

uma baixa frequência <strong>de</strong> clock po<strong>de</strong>-se usar o oscilador LP. O oscilador LP po<strong>de</strong> ser<br />

usado quando o projeto necessita <strong>de</strong> uma frequência entre 32 KHz e 200 KHz. Já<br />

frequências mais altas como, entre 2 MHz e 4MHZ e entre 8 MHz e 20 MHz, po<strong>de</strong>m<br />

ser utilizados os osciladores XT e HS, respectivamente (SOLBET, 2011).<br />

(I)<br />

(II)


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 17<br />

. A vantagem <strong>de</strong> utilizar um oscilador externo é a possibilida<strong>de</strong> do sincronismo<br />

entre vários microcontroladores com um mesmo clock. O tipo <strong>de</strong> oscilador é<br />

configurado no programa que é gravado no PIC.<br />

Nos modos <strong>de</strong> operação com osciladores LP, XT e HS, os circuitos são<br />

sempre iguais, variando apenas os componentes, com a finalida<strong>de</strong> <strong>de</strong> proverem a<br />

frequência <strong>de</strong>sejada (MIYADAIRA, 2009).<br />

.Na Tabela 1 são listados os valores recomendados <strong>para</strong> os componentes em<br />

várias situações, e a Figura 5 ilustra circuito básico externo do oscilador no<br />

PIC16F877A.<br />

Tabela 1. Cristal x Capacitor.<br />

Tipo <strong>de</strong> oscilador Frequência do Cristal Capacitores (C1 e C2)<br />

XT 4 MHz 15 pF<br />

HS<br />

4 MHz 15 pF<br />

8 MHz 15-33 pF<br />

20 MHz 15-33 pF<br />

Figura 5. Circuito Oscilador do PIC16F877A (MIYADAIRA, 2009).<br />

O resistor RS neste circuito normalmente não é necessário. Segundo<br />

Miyadaira (2009), <strong>para</strong> verificar a necessida<strong>de</strong> <strong>de</strong>ste resistor verifica-se o sinal do<br />

pino OSC2 apresenta formato senoidal. Se o sinal estiver alcançado a máxima<br />

amplitu<strong>de</strong>, <strong>de</strong>ve-se inserir o resistor, <strong>para</strong> diminuir a amplitu<strong>de</strong> e gerar um sinal<br />

senoidal perfeito, sem cortes.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 18<br />

2.3.5 <strong>Sistema</strong> <strong>de</strong> Reset<br />

O reset do PIC16F877A po<strong>de</strong> ser <strong>de</strong> diferentes tipos e atuam <strong>de</strong> modo<br />

diferente sobre os registros. Quando ocorre o reset <strong>de</strong>vido ao WDT o programa é<br />

<strong>de</strong>sviado <strong>para</strong> a próxima instrução após o SLEEP, já os <strong>de</strong>mais resets <strong>de</strong>sviam <strong>de</strong><br />

imediato o programa <strong>para</strong> a posição 0H.<br />

� Reset no terminal MCLR (Master Clear Reset) durante operação normal;<br />

� Reset no terminal MCLR durante a execução <strong>de</strong> uma instrução <strong>de</strong> SLEEP;<br />

� Reset através do Watch Dog timer (WDT) em operação normal;<br />

� Reset através do Brown-out Reset (BOR);<br />

� Reset na energização do sistema (POR – Power-on Reset).<br />

O reset no terminal MCLR é o único evento externo que po<strong>de</strong> ocasionar o<br />

reset do microcontrolador. O pino referente a este terminal é um pino <strong>de</strong> entrada que<br />

após ser submetido a uma tensão inferior a 1 V (quando o dispositivo é alimentado<br />

com 5 V) força o reinicio do dispositivo. Neste terminal ainda é possível realizar um<br />

reset durante o funcionamento do microcontrolador no modo sleep (MIYADAIRA,<br />

2009).<br />

Em rotinas as quais o processador exce<strong>de</strong> o tempo limite, que foi<br />

estabelecido pelo programador, <strong>para</strong> a sua execução, o WDT reinicia o<br />

microcontrolador (MIYADAIRA, 2009).<br />

Com o BOR, o dispositivo po<strong>de</strong> ser reiniciado caso a tensão <strong>de</strong> alimentação<br />

for inferior ao valor que foi <strong>de</strong>finido pelo programador. A faixa <strong>de</strong> tensão varia ente<br />

2,05 V e 4,59 V. O POR, é utilizado quando o projetista quer garantir que o nível <strong>de</strong><br />

tensão <strong>de</strong> alimentação do dispositivo seja o i<strong>de</strong>al. Ele mantém o dispositivo em reset<br />

até que a tensão <strong>de</strong> alimentação e a tensão <strong>de</strong> operação do dispositivo se igualem<br />

(MIYADAIRA, 2009).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 19<br />

O fabricante recomenda o circuito ilustrado na Figura 6. Este circuito tem<br />

como finalida<strong>de</strong> evitar resets inesperados, filtrar ruídos e proteger o pino contra<br />

<strong>de</strong>scargas eletrostáticas (ESD). É aconselhado que o resistor R1seja menor que 40<br />

KΩ a fim <strong>de</strong> garantir a queda <strong>de</strong> tensão não seja maior que as especificadas <strong>para</strong> o<br />

dispositivo. O resistor R2 <strong>de</strong>ve ser maior que 1 KΩ com a finalida<strong>de</strong> <strong>de</strong> limitar a<br />

corrente proveniente do capacitor C.<br />

2.3.6 Interrupções<br />

Figura 6. Circuito MCLR (MIYADAIRA, 2009)<br />

As interrupções possuem uma gran<strong>de</strong> utilida<strong>de</strong> em sistemas<br />

microcontrolados. Elas têm como função suspen<strong>de</strong>r, a qualquer momento, a<br />

execução <strong>de</strong> um programa e iniciar a execução <strong>de</strong> uma nova rotina, que foi<br />

configurada <strong>para</strong> ser tratada com essa interrupção. Com a finalização da rotina da<br />

interrupção, o programa que anteriormente foi pausado, volta a ser executado<br />

justamente <strong>de</strong> on<strong>de</strong> parou. A alta velocida<strong>de</strong> <strong>de</strong> execução é a principal sua<br />

característica, sendo tratadas em nível <strong>de</strong> hardware (MIYADAIRA, 2009).<br />

As interrupções po<strong>de</strong>m ser provenientes tanto <strong>de</strong> eventos externos (mudança<br />

do sinal <strong>de</strong> entrada <strong>de</strong> um pino) quanto internos (conversão A/D, estouro <strong>de</strong> TIMER,<br />

estouro <strong>de</strong> WDT, etc.).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 20<br />

Há 15 tipos <strong>de</strong> interrupções diferentes no PIC16F877A. Todas geram <strong>de</strong>svio<br />

do programa <strong>para</strong> o mesmo vetor <strong>de</strong> interrupção, se <strong>de</strong>vidamente configurada. A<br />

seguir são listadas as interrupções:<br />

� Interrupções <strong>de</strong> TIMER 0;<br />

� Interrupções <strong>de</strong> TIMER 1;<br />

� Interrupções <strong>de</strong> TIMER 2;<br />

� Interrupção externa;<br />

� Interrupção por mudança <strong>de</strong> estado;<br />

� Interrupção da porta <strong>para</strong>lela;<br />

� Interrupção dos conversores A/D;<br />

� Interrupção <strong>de</strong> recepção USART;<br />

� Interrupção <strong>de</strong> transmissão USART;<br />

� Interrupção da Comunicação Serial (SPI e I²C);<br />

� Interrupção do CCP1 (Capture/Compare/PWM);<br />

� Interrupção do CCP2 (Capture/Compare/PWM);<br />

� Interrupção <strong>de</strong> escrita na memória não volátil;<br />

� Interrupção Bus Colission (Comunicação Serial);<br />

� Interrupção dos Com<strong>para</strong>dores;<br />

2.3.7 USART<br />

O circuito eletrônico, do microcontrolador, responsável pela interface serial<br />

com o dispositivo é <strong>de</strong>nominado USART. A USART funciona da seguinte forma:<br />

<strong>para</strong> transmitir, o dispositivo envia os dados <strong>de</strong> forma <strong>para</strong>lela à USART e este<br />

circuito os converte e transmiti bit a bit via porta serial. Para receber os dados a<br />

USART recebe os dados bit a bit e antes <strong>de</strong> entregar ao dispositivo os converte <strong>para</strong>


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 21<br />

forma <strong>para</strong>lela. Este circuito é comumente usado em aplicações <strong>de</strong> comunicação<br />

assíncrona RS-232 (MIYADAIRA, 2009).<br />

É o formato padrão <strong>para</strong> comunicação <strong>de</strong> dados serial. Po<strong>de</strong> ser configurada<br />

<strong>para</strong> trabalhar na forma assíncrona ou síncrona. Na forma assíncrona os dados são<br />

transmitidos nas duas direções (full-duplex), sendo totalmente bi-direcional, <strong>para</strong><br />

isso os dispositivos comunicantes <strong>de</strong>vem ter seu clock e velocida<strong>de</strong>s iguais. Na<br />

forma síncrona os dispositivos funcionam nos dois sentidos, porém os dados fluem<br />

em um sentido <strong>de</strong> cada vez (half-duplex).<br />

2.3.8 Módulo PWM<br />

O microcontrolador PIC16F877A possui o módulo CCP (Capture, Compare or<br />

PWM). A seguir tem-se a <strong>de</strong>scrição <strong>de</strong> cada função:<br />

� Capture: quando habilitado no modo captura, o dispositivo me<strong>de</strong> o tempo<br />

entre dois eventos;<br />

� Compare: quando habilitado no modo compare, o dispositivo dis<strong>para</strong> um<br />

evento em um período <strong>de</strong> tempo pre<strong>de</strong>terminado;<br />

� PWM (Modulação por Largura <strong>de</strong> Pulso): quando habilitado no modo<br />

PWM, o dispositivo é responsável por controlar a tensão entregue a uma<br />

<strong>de</strong>terminada carga, sendo que a largura do sinal entregue é modificada<br />

<strong>de</strong>ntro <strong>de</strong> períodos pre<strong>de</strong>terminados.<br />

O PWM fornece, através do pino CCPx, um sinal com resolução <strong>de</strong> 10 bits.<br />

Como ilustrado na Figura 7, esta modulação consiste em controlar o tempo que o<br />

sinal ficará em nível alto, que é <strong>de</strong>nominado duty cycle (MIYADAIRA, 2009).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 22<br />

2.4 Rádio<br />

Figura 7. Saída PWM no módulo CCPx (MIYADAIRA, 2009).<br />

Heinrich Rudolf Hertz foi o cientista que provou a existência <strong>de</strong> uma analogia<br />

entre as ondas eletromagnéticas e as luminosas, pois ambas se propagam com a<br />

mesma velocida<strong>de</strong> (300 mil quilômetros por segundo). Também provou que essas<br />

ondas são refletidas, refratadas e sofrem os mesmos tipos <strong>de</strong> interferência e<br />

difração. Estas observações foram fundamentais <strong>para</strong> o <strong>de</strong>senvolvimento do<br />

telegrafo, do rádio e da televisão.<br />

Hertz foi o responsável por dar origem e conceituar a medida e a onda<br />

hertziana, on<strong>de</strong> um Hertz correspon<strong>de</strong> a uma oscilação por segundo. As unida<strong>de</strong>s<br />

<strong>de</strong> medida mais comumente utilizadas <strong>para</strong> <strong>de</strong>finir a frequência são o Hertz (Hz),<br />

Kilohertz (KHz) e o Megahertz (MHz) (MOHER E HAYKIN, 2011).<br />

O conceito básico do funcionamento da transmissão via rádio-frequência<br />

inicia-se quando o transmissor transforma um sinal elétrico em magnético e irradia<br />

essa onda <strong>para</strong> o espaço. A antena receptora absorve esta energia e envia <strong>para</strong> o<br />

receptor, on<strong>de</strong> a informação é recuperada, ou seja, as sondas magnéticas são<br />

transformadas em elétricas novamente. Assim, po<strong>de</strong>mos listar como componentes<br />

necessários <strong>para</strong> a transmissão via rádio-frequência:<br />

� Transmissor;<br />

� Receptor;<br />

� Antena (transmissão e recepção).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 23<br />

Para a viabilização da comunicação <strong>de</strong>ve-se levar em consi<strong>de</strong>ração a<br />

potência do transmissor, a distância entre o transmissor e o receptor e a<br />

sensibilida<strong>de</strong> do receptor. A escolha da frequência da onda é influenciada pelas<br />

condições da atmosfera terrestre e da natureza do solo entre os pontos <strong>de</strong><br />

transmissão e recepção. Sinais interferentes po<strong>de</strong>m tornar a recepção ruim por<br />

algum tempo (VISSOTTO, 2004).<br />

As variações no tamanho do comprimento das ondas fazem com que as<br />

ondas se propaguem <strong>de</strong> maneiras diferentes no ar. Quanto maior a frequência<br />

menor será a distância que o sinal percorrerá. A perda da intensida<strong>de</strong> do sinal é<br />

mais iminente em ondas <strong>de</strong> alta frequência.<br />

Assim como o petróleo, o espectro <strong>de</strong> RF é um recurso natural escasso e,<br />

portanto, <strong>de</strong>ve ser utilizado <strong>de</strong> forma pru<strong>de</strong>nte e conservativa. Vários serviços como<br />

rádio AM, rádio FM, TV, celular, satélite e enlaces fixos terrestres <strong>de</strong>vem<br />

compartilhar <strong>de</strong>sse espectro comum. Além disso cada um <strong>de</strong>sses serviços <strong>de</strong>ve<br />

crescer e se expandir sem causar interferência em outro (SOARES E COSTA,<br />

2003).<br />

A ITU (International Telecomunications Union) é o órgão encarregado <strong>de</strong><br />

alocar e controlar as partes individuais do espectro. A ITU possui dois órgãos <strong>de</strong><br />

maior interesse <strong>para</strong> a comunicação via RF, são as ITU-T e ITU-R. A WARC (World<br />

Administrative Radio Conference), que é uma subdivisão da ITU-R, é responsável<br />

pela alocação <strong>de</strong> uma banda especifica <strong>de</strong> frequência <strong>para</strong> os serviços atuais e<br />

futuros e a RRB (Radio Regulations Board) <strong>de</strong>fine as regras internacionais <strong>para</strong> o<br />

uso das frequências <strong>de</strong>ntro da banda (ITU, 2011).<br />

A relação entre a frequência e o período, mostrada abaixo, é inversamente<br />

proporcional, ou seja, quanto maior a frequência menor será o período ou quanto<br />

mais baixa a frequência da onda, maior será o comprimento da onda.<br />

Sendo,<br />

(III)


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 24<br />

f = frequência [Hz];<br />

T = Período [s];<br />

O comprimento da onda é relacionado com a frequência e com a velocida<strong>de</strong><br />

<strong>de</strong> propagação da luz, como mostrado a baixo.<br />

Sendo,<br />

λ = comprimento <strong>de</strong> onda [km];<br />

c = velocida<strong>de</strong> <strong>de</strong> propagação da luz [km/s];<br />

f = frequência [Hz];<br />

Po<strong>de</strong>mos encontrar o tamanho ótimo da antena utilizando-a do tamanho da<br />

meta<strong>de</strong> do comprimento da onda (λ/2). A velocida<strong>de</strong> com que a onda <strong>de</strong> rádio se<br />

<strong>de</strong>sloca no espaço <strong>de</strong>pen<strong>de</strong> das condições do meio <strong>de</strong> propagação. Po<strong>de</strong> ser<br />

<strong>de</strong>terminada por:<br />

Sendo,<br />

= permeabilida<strong>de</strong> do meio [H/m];<br />

= permissivida<strong>de</strong> do meio [F/m];<br />

A velocida<strong>de</strong> <strong>de</strong> propagação é importante quando estamos trabalhando com<br />

sistemas digitais. Nos sinais analógicos, a velocida<strong>de</strong>, é uma medida <strong>de</strong> retardo<br />

(IV)<br />

(V)


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 25<br />

entre o instante que colocamos o sinal na linha e o instante que o sinal chega a seu<br />

ponto <strong>de</strong> <strong>de</strong>stino (BRANCO, 2010).<br />

O <strong>de</strong>svanecimento é um dos maiores problemas na recepção <strong>de</strong> sinais. Está<br />

relacionado com a variação da intensida<strong>de</strong> do sinal. É um processo causado por<br />

variações aleatórias nas condições atmosféricas, nas quais não po<strong>de</strong>m ser preditas<br />

com precisão. Quando uma onda <strong>de</strong> rádio é refratada pela ionosfera ou refletida pela<br />

superfície terrestre, po<strong>de</strong>m ocorrer mudanças aleatórias na polarização da onda.<br />

Antenas montadas horizontal e verticalmente tem a função <strong>de</strong> receber<br />

respectivamente ondas polarizadas horizontal ou verticalmente (VIEIRA, 2011).<br />

Outro problema bastante comum que influencia a propagação das ondas é o<br />

terreno. Po<strong>de</strong> interferir <strong>de</strong> três formas, por obstrução, reflexão ou refração. Como<br />

exemplo po<strong>de</strong>mos citar as montanhas, árvores e prédios que po<strong>de</strong>m bloquear os<br />

feixes causando a atenuação por obstrução ou as regiões planas como mares e<br />

lagos e po<strong>de</strong>m refletir os feixes em oposição ao sinal causando assim atenuação por<br />

interferência. Po<strong>de</strong>, também, ocorrer difração quando o terreno é rugoso, ou seja, o<br />

espaço entre os extremos dos dispositivos <strong>de</strong> rádio é irregular (ROSS, 2010).<br />

2.5 ZigBee<br />

2.5.1 Introdução<br />

O ZigBee é uma tecnologia recente que foi primeiramente apresentada ao<br />

público em 27 <strong>de</strong> julho <strong>de</strong> 2005, porém surgiu <strong>de</strong> fato em <strong>de</strong>zembro <strong>de</strong> 2004. O<br />

protocolo surgiu da falta no mercado <strong>de</strong> normas que regulamentassem aplicações<br />

<strong>de</strong> re<strong>de</strong>s sem fio <strong>para</strong> controle e monitoramento <strong>de</strong> dispositivos. Assim foi criado o<br />

padrão baseado na norma IEEE 802.15.4 (SANTANA, 2008).<br />

O nome ZigBee foi adotado por conta da analogia da estrutura e modo <strong>de</strong><br />

funcionamento da re<strong>de</strong> <strong>de</strong> comunicação com o modo <strong>de</strong> vida das abelhas. Uma<br />

malha ZigBee apresenta múltiplos percursos possíveis entre cada dispositivo, o que<br />

permite eliminar um possível ponto <strong>de</strong> falha, através do “zig” e “zag” da informação


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 26<br />

pela re<strong>de</strong>. As abelhas voam em ziguezague informando aos <strong>de</strong>mais membros da<br />

colméia a distância, direção e localização dos alimentos <strong>de</strong>scobertos (SILVA, 2011).<br />

A entida<strong>de</strong> responsável por este protocolo chama-se ZigBee TM Alliance,<br />

sendo constituída por 200 empresas oriundas <strong>de</strong> mais <strong>de</strong> 20 países e integrada por<br />

especialistas da área <strong>de</strong> telecomunicações e semicondutores, incluindo membros da<br />

IEEE (SILVA, 2011).<br />

O padrão ZigBee foi <strong>de</strong>senvolvido <strong>para</strong> servir <strong>de</strong> alternativa <strong>de</strong> comunicação<br />

sem fio em sistemas não muito complexos, do ponto <strong>de</strong> vista <strong>de</strong> implementação <strong>de</strong><br />

re<strong>de</strong> <strong>de</strong> comunicação, que exijam soluções <strong>de</strong> baixos custo e consumo <strong>de</strong> energia.<br />

O referido protocolo possui <strong>de</strong>terminadas peculiarida<strong>de</strong>s que o tornam<br />

extremamente distintos dos restantes, tais como (SANTANA, 2008):<br />

� Reduzido consumo <strong>de</strong> potência – low power;<br />

� Interfaces <strong>de</strong> baixo custo – low cost;<br />

� Possibilida<strong>de</strong> <strong>de</strong> suportar uma elevada <strong>de</strong>nsida<strong>de</strong> <strong>de</strong> nós por re<strong>de</strong>,<br />

chegando a 65535 dispositivos ZigBee por cada módulo coor<strong>de</strong>nador;<br />

� Admite diferentes topologias <strong>de</strong> re<strong>de</strong> como estrela (star), malha (mesh) ou<br />

árvore (cluster tree);<br />

� Tempo pequeno <strong>de</strong> ligação a re<strong>de</strong>, rapi<strong>de</strong>z na passagem do modo <strong>de</strong><br />

espera <strong>para</strong> o modo ativo e baixa latência (low latency);<br />

� Dois modos <strong>de</strong> operação: beaconing e non-beaconing;<br />

� Elevada segurança e confiabilida<strong>de</strong>, com recursos <strong>de</strong> encriptação <strong>de</strong> 128<br />

bits;<br />

� Suporta duas classes <strong>de</strong> dispositivos em uma mesma re<strong>de</strong>, <strong>de</strong>finidas pela<br />

IEEE 802.15.4:<br />

o Full Function Device (FFD) – po<strong>de</strong> funcionar em qualquer topologia,<br />

no qual on<strong>de</strong> <strong>de</strong>sempenha a função <strong>de</strong> coor<strong>de</strong>nador e,<br />

consequentemente, tem acesso a todos os outros dispositivos. São<br />

dispositivos <strong>de</strong> construção mais complexos;


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 27<br />

Tabela 2:<br />

o Reduced Function Device (RFD) – são limitados à configuração <strong>de</strong><br />

topologia em estrela, não po<strong>de</strong>ndo atuar como coor<strong>de</strong>nador <strong>de</strong><br />

re<strong>de</strong>. São dispositivos <strong>de</strong> construção simples.<br />

O ZigBee da suporte a três tipos <strong>de</strong> dispositivos lógicos, como listado na<br />

DISPOSITIVO<br />

Tabela 2. Tipos <strong>de</strong> dispositivos lógicos.<br />

TIPO DE DISPOSITIVO FÍSICO<br />

ASSOCIADO (IEEE)<br />

COORDENADOR FFD<br />

ROTEADOR FFD<br />

DISPOSITIVO FINAL RFD OU FFD<br />

2.5.2 Modos <strong>de</strong> Operação da Re<strong>de</strong> ZigBee<br />

FUNÇÃO<br />

Formar a re<strong>de</strong> e atribuir<br />

en<strong>de</strong>reços aos endpoints.<br />

Existe<br />

re<strong>de</strong>.<br />

apenas um por<br />

Permitir que mais nós se<br />

juntem à re<strong>de</strong>,<br />

aumentando o alcance<br />

físico. Efetua funções <strong>de</strong><br />

controle<br />

monitoramento.<br />

Existência opcional.<br />

e<br />

Efetuar ação <strong>de</strong> controle e<br />

monitoramento através <strong>de</strong><br />

equipamentos acoplados a<br />

ele, como sensores,<br />

controladores e outros.<br />

As re<strong>de</strong>s ZigBee po<strong>de</strong>m operar <strong>de</strong> dois modos: beaconing e non-beaconing.<br />

No modo beaconing os nós roteadores transmitem periodicamente sinalizações,<br />

<strong>de</strong>nominadas beacons, <strong>para</strong> confirmar a sua presença aos outros nós da mesma<br />

re<strong>de</strong>. Neste modo <strong>de</strong> operação os <strong>de</strong>mais nós só necessitam estar ativos no<br />

momento da sinalização. Esse modo <strong>de</strong> operação possui uma vantagem evi<strong>de</strong>nte,<br />

que é o pequeno consumo <strong>de</strong> energia (SILVA, 2011).<br />

O modo non-beaconing funciona da mesma maneira do anterior, exceto pelo<br />

fato da transmissão ser contínua, não havendo tempo <strong>de</strong> contenção (TEIXEIRA,<br />

2006). Para as re<strong>de</strong>s operarem neste segundo modo po<strong>de</strong>m-se tornar necessárias<br />

fontes <strong>de</strong> alimentação mais robustas.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 28<br />

2.5.3 Topologias <strong>de</strong> Re<strong>de</strong><br />

Três tipos <strong>de</strong> topologias po<strong>de</strong>m ser implementadas, seguindo as<br />

especificações da norma IEEE 802.15.4, <strong>de</strong> acordo com o tipo <strong>de</strong> aplicação<br />

<strong>de</strong>sejada.<br />

2.5.3.1 Estrela (Star)<br />

Na topologia estrela a comunicação é estabelecida entre os dispositivos e um<br />

único coor<strong>de</strong>nador na re<strong>de</strong>, como ilustrado na Figura 8. Cabe ao coor<strong>de</strong>nador o<br />

controle da re<strong>de</strong>, assumindo um controle central e comunicação direta com os<br />

<strong>de</strong>mais dispositivos (dispositivos finais), toda a informação em circulação passa pelo<br />

nó coor<strong>de</strong>nador (SILVA, 2011).<br />

O coor<strong>de</strong>nador <strong>de</strong>ve estar em modo <strong>de</strong> recepção quando não estiver<br />

transmitindo dados, a fim <strong>de</strong> melhor gerenciar os dispositivos finais da re<strong>de</strong>.<br />

Geralmente o módulo coor<strong>de</strong>nador é programado em conjunto com<br />

microcontroladores (TEIXEIRA, 2006).<br />

2.5.3.2 Malha (Mesh)<br />

Figura 8. Topologia Estrela (SILVA, 2011).<br />

Neste tipo <strong>de</strong> topologia (Figura 9) os dispositivos FFD são livres <strong>para</strong> se<br />

comunicar com outro dispositivo FFD permitindo, quando necessário, a expansão<br />

física da re<strong>de</strong>. O coor<strong>de</strong>nador se encarrega <strong>de</strong> registrar toda a entrada e saída <strong>de</strong>


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 29<br />

dispositivo, porém não assume um papel em termos <strong>de</strong> fluxo <strong>de</strong> informação (SILVA,<br />

2011).<br />

Além da expansão geográfica, essa topologia tem como vantagem a<br />

redundância na re<strong>de</strong>, ou seja, caso um roteador perca a conexão com o<br />

coor<strong>de</strong>nador ainda é possível controlá-lo pelo uso <strong>de</strong> outra rota (TEIXEIRA, 2006).<br />

2.5.3.3 Árvore (Cluster Tree)<br />

Figura 9. Topologia Malha (SILVA, 2011).<br />

A topologia árvore ilustrada na Figura 10 é obtida através da modificação da<br />

topologia estrela, pela inclusão <strong>de</strong> novos dispositivos FFD que <strong>de</strong>sempenharão a<br />

função <strong>de</strong> roteadores (TEIXEIRA, 2006). Também apresenta semelhança com a<br />

re<strong>de</strong> em malha, pois são usados dispositivos roteadores.<br />

Nesta topologia há a distribuição <strong>de</strong> dados e mensagens <strong>de</strong> controle em uma<br />

estrutura hierárquica, on<strong>de</strong> é função do coor<strong>de</strong>nador ser o “nó central” da re<strong>de</strong>.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 30<br />

Figura 10. Topologia Árvore (SILVA, 2011).<br />

2.5.4 Arquitetura do Protocolo ZigBee/IEEE 802.15.4<br />

A arquitetura das re<strong>de</strong>s ZigBee é baseado no mo<strong>de</strong>lo em camadas OSI (Open<br />

System Interconnection) <strong>de</strong> sete camadas, porém o protocolo ZigBee <strong>de</strong>fine apenas<br />

as camadas <strong>de</strong> interesse <strong>para</strong> atingir as funcionalida<strong>de</strong>s <strong>de</strong>sejadas (SILVA, 2011).<br />

Cada camada é responsável por parte do padrão, oferecendo serviços às<br />

camadas superiores. As camadas MAC e PHY são <strong>de</strong>finidas pela norma IEEE<br />

802.15.4 e as superiores são <strong>de</strong>finidas pela ZigBee Aliance (SANTANA, 2008). A<br />

camada mais em cima é <strong>de</strong>finida pela ZigBee Aliance em conjunto com a OEM<br />

(Original Equipment Manufacturer). A OEM é uma modalida<strong>de</strong> <strong>de</strong> distribuição <strong>de</strong><br />

produtos na qual eles não são comercializados <strong>para</strong> os usuários finais, e sim apenas<br />

<strong>para</strong> os fabricantes que montam seus produtos e repassam <strong>para</strong> o consumidor final.<br />

As camadas do protocolo po<strong>de</strong>m ser esquematizadas <strong>de</strong> forma simplificada, como<br />

ilustra a Figura 11.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 31<br />

Figura 11. Camadas do protocolo ZigBee (SILVA, 2011).<br />

A camada PHY é a mais baixa na hierarquia do protocolo. As funções <strong>de</strong>sta<br />

camada são: ativação e <strong>de</strong>sativação da transmissão, <strong>de</strong>tecção <strong>de</strong> energia, indicação<br />

da qualida<strong>de</strong> da comunicação, seleção do canal e transmissão/recepção <strong>de</strong> pacotes<br />

através do meio físico. Nesta camada estão inseridos os circuitos eletrônicos que<br />

fazem as trocas <strong>de</strong> informações, ou seja, os módulos transceptores <strong>de</strong> rádio-<br />

frequência (IEEE, 2003).<br />

A camada MAC é responsável por controlar o acesso aos canais <strong>de</strong> rádio-<br />

frequência, utilizando mecanismos <strong>de</strong> prevenção <strong>de</strong> colisão CSMA/CA (Carrier<br />

Sense Multiple Acces - Collision Avoidance). Especifica os tipos <strong>de</strong> dispositivos<br />

permitidos na re<strong>de</strong>, garantindo a segurança <strong>de</strong> operação (IEEE, 2003).<br />

A camada NWK é a primeira <strong>de</strong>finida pela ZigBee Aliance. Tem como funções<br />

a <strong>de</strong>tecção do inicio ou fim da conexão <strong>de</strong> um dispositivo à re<strong>de</strong>, à <strong>de</strong>scoberta <strong>de</strong><br />

novos dispositivos e atribuição <strong>de</strong> en<strong>de</strong>reços. Nesta camada ainda estão presentes<br />

os dispositivos encarregados pelas <strong>de</strong>scobertas <strong>de</strong> rotas e configuração <strong>de</strong> novos<br />

dispositivos na re<strong>de</strong> (IEEE, 2003).<br />

Segundo Santana, (2008) as <strong>de</strong>mais camadas <strong>de</strong> aplicação são encarregadas<br />

<strong>de</strong> assegurar uma correta gestão e suporte <strong>para</strong> as diversas aplicações do ZigBee.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 32<br />

2.5.5 Características Técnicas<br />

2.5.5.1 Número <strong>de</strong> Canais <strong>de</strong> Frequência<br />

São regulamentados, pela IEEE 802.15.4, 27 canais <strong>de</strong> frequência livres <strong>para</strong><br />

a operação do ZigBee. Estes canais são divididos em três faixas <strong>de</strong> frequência, <strong>de</strong><br />

acordo com a onda portadora gerada pelo dispositivo.<br />

A primeira faixa está entre 868 MHz e 868,6 MHz, que suporta apenas um<br />

canal e é utilizada somente na Europa. A segunda faixa está entre 902 MHz e 928<br />

MHz, oferece 10 canais e é utilizada somente na América do Norte. A terceira faixa<br />

está entre 2,4 GHz e 2,4845 GHz, oferece 16 canais e é utilizada em todo o mundo<br />

(SANTANA, 2008).<br />

2.5.5.2 Modulação<br />

A modulação po<strong>de</strong> acontecer <strong>de</strong> duas formas, <strong>de</strong>pen<strong>de</strong>ndo do tipo <strong>de</strong> camada<br />

física que está sendo utilizada. Para as camadas físicas entre 868 e 915 MHz a<br />

modulação é do tipo BPSK (Binary Phase Shift Keying). Para as camadas <strong>de</strong> 2,4<br />

GHz é utilizada a modulação O-QSPK (Offset Quadrature Phase Shift Keying)<br />

(TEIXEIRA, 2006).<br />

A modulação BPSK é ilustrada na Figura 12. O primeiro sinal é o modulante,<br />

ou seja, a informação propriamente dita que <strong>de</strong>ve ser enviada entre os dispositivos.<br />

O segundo sinal é a onda portadora analógica, que no ZigBee é um sinal senoidal<br />

<strong>de</strong> frequência entre 868 e 915 MHz ou 2,4 GHz. É através <strong>de</strong> sua <strong>de</strong>formação que<br />

será gerado o sinal modulado. O terceiro sinal é a portadora modulada; é ele que<br />

efetivamente se transmite <strong>de</strong> um transceptor a outro da re<strong>de</strong> (SANTANA, 2008).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 33<br />

Figura 12. Modulação BPSK (SANTANA, 2008).<br />

A modulação (Figura 13) O-QSPK funciona <strong>de</strong> forma parecida com a BPSK.<br />

O sinal modulante é agrupado em conjunto com dois bits (a e b) que são nomeados<br />

DIBITS. A cada evento on<strong>de</strong> há a presença <strong>de</strong> um <strong>de</strong>sses pares o sinal modulado<br />

sofre uma <strong>de</strong>formação pré-<strong>de</strong>finida (SANTANA, 2008).<br />

2.5.5.3 Sensibilida<strong>de</strong> e Potência<br />

Figura 13. Modulação O-QSPK (SANTANA, 2008).<br />

Segundo Teixeira (2006) a sensibilida<strong>de</strong> do padrão ZigBee é regulamentada<br />

pela IEEE como -85 dBm <strong>para</strong> a camada física <strong>de</strong> 2,4 GHz e -92 dBm <strong>para</strong> as<br />

camadas entre 868 MHz e 915 MHz. A potência também varia, porém é


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 34<br />

regulamentado <strong>para</strong> no mínimo 1mW por dispositivo, o que é capaz <strong>de</strong> cobrir uma<br />

área interna <strong>de</strong> 10 m a 20 m ou uma área externa <strong>de</strong> até 100 m.<br />

2.5.5.4 Interferência e Segurança<br />

Os dispositivos operantes na faixa <strong>de</strong> 2,4 GHz sofrem interferências geradas<br />

por outros dispositivos que estejam em faixas próximas, tais como telefones e re<strong>de</strong>s<br />

wi-fi (TEIXEIRA, 2006). Nas re<strong>de</strong>s ZigBee a camada MAC é responsável por tratar<br />

da segurança dos dados. Utiliza um padrão AES (Advanced Encryption Standard)<br />

que fornece um algoritmo <strong>de</strong> 128 bits <strong>para</strong> a criptografia <strong>de</strong> dados (SANTANA,<br />

2008).<br />

Mesmo sendo processado na camada MAC, as camadas superiores é que<br />

controlam em que nível a criptografia <strong>de</strong>ve ser utilizada, po<strong>de</strong>ndo ser: sem<br />

segurança, controle <strong>de</strong> acesso aos dados ou com chave <strong>de</strong> 128 bits (TEIXEIRA,<br />

2006).<br />

2.5.6 Módulos ZigBee<br />

Existem vários tipos <strong>de</strong> módulos ZigBee, uns dos mais utilizados atualmente<br />

são o XBee e o XBee-Pro. Estes dois módulos são versões parecidas e por isso<br />

perfeitamente compatíveis. Algumas diferenças significativas consistem na potência<br />

<strong>de</strong> transmissão (sendo 1 mW <strong>para</strong> o XBee e 63 mW <strong>para</strong> o XBee-Pro), alcance (<strong>de</strong><br />

aproximadamente 120 m <strong>para</strong> o XBee e 1,6 Km <strong>para</strong> o XBee-Pro) e consumo <strong>de</strong><br />

corrente (cerca <strong>de</strong> 45 mA <strong>para</strong> o XBee e 270 mA <strong>para</strong> o XBee-Pro).<br />

Estes módulos po<strong>de</strong>m ser distinguidos também pela série (série 1 ou série 2).<br />

Os dispositivos da série 1 não se comunicam com os da série 2 (que é utilizado no<br />

projeto em questão) e neste primeiro os comandos ATs servem <strong>para</strong> configuração<br />

ou <strong>para</strong> ler parâmetros no módulo local, enquanto com o segundo é possível enviar<br />

comandos ATs, remotamente, <strong>para</strong> outros módulos.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 35<br />

Os módulos XBee/XBee-Pro TM po<strong>de</strong>m ser encontrado no mercado <strong>de</strong> três<br />

formas distintas: com antena vertical integrada (tipo chicote), conector <strong>para</strong> antena<br />

externa e chip (sendo que a energia radiada não é direcional).<br />

As vantagens em utilizar módulos com os tipos <strong>de</strong> antenas chicote e externa é<br />

a possibilida<strong>de</strong> <strong>de</strong> direcionar o feixe do sinal, melhorando a performance da re<strong>de</strong><br />

ZigBee, porém é aconselhável estudar cada tipo e assim escolher a que melhor se<br />

adapte ao projeto.<br />

2.5.7 Como Configurar e Usar os Módulos XBee/XBee-Pro TM<br />

Como listado na Tabela 3, os pinos do módulo ZigBee possuem diferentes<br />

funções como entradas analógicas, PWM, entrada/saída digital, entre outras.<br />

Tabela 3. Descrição dos pinos dos módulos XBee/XBee-Pro (MESSIAS, 2008).<br />

PINO # NOME DIREÇÃO DESCRIÇÃO<br />

1 VCC - Alimentação 3,3 V<br />

2 DOUT Saída Saída <strong>de</strong> dados da UART<br />

3 DIN/ Entrada/Saída Entrada <strong>de</strong> dados da UART<br />

4 DO8* Saída Saída digital 8<br />

5 Entrada<br />

Inicializa módulo (um pulso nível 0 <strong>de</strong><br />

pelo menos 200 ms)<br />

6 PWM0/RSSI Saída<br />

Saída do PWM 0/ indicador <strong>de</strong> força<br />

do sinal <strong>de</strong> RF<br />

7 PWM1 Saída Saída do PWM 1<br />

8 (Reservado) - Ainda não tem uma função <strong>de</strong>finida<br />

9 /SLEEP_IRQ/DI8 Entrada<br />

Linha <strong>de</strong> controle da função sleep ou<br />

entrada digital 8.<br />

10 GND - Terra<br />

11 AD4/DIO4 Entrada/Saída<br />

Entrada analógica 4 ou entrada/saída<br />

digital 4<br />

12 /DIO7 Entrada/Saída<br />

Controle do fluxo<br />

entrada/saída digital 7<br />

CTS ou<br />

13 ON/SLEEP Saída Indicador <strong>de</strong> estado do módulo<br />

14 VREF Entrada<br />

Voltagem <strong>de</strong><br />

entradas A/D<br />

referencia <strong>para</strong> as<br />

15 Associação/AD5/DIO5 Entrada/Saída<br />

Indicador <strong>de</strong> associação, entrada<br />

analógica 5 ou entrada/saída digital 5<br />

16 /AD6/DIO6 Entrada/Saída<br />

Controle <strong>de</strong> fluxo RTS, entrada<br />

analógica 6 ou entrada/saída digital 6<br />

17 AD3/DIO3 Entrada/Saída<br />

Entrada analógica 3 ou entrada/saída<br />

digital 3<br />

18 AD2/DIO2 Entrada/Saída Entrada analógica 2 ou entrada/saída


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 36<br />

19 AD1/DIO1 Entrada/Saída<br />

20 AD0/DIO0 Entrada/Saída<br />

digital 2<br />

Entrada analógica 1 ou entrada/saída<br />

digital 1<br />

Entrada analógica 0 ou entrada/saída<br />

digital 0<br />

Os módulos XBee/XBee-ProTM po<strong>de</strong>m operar <strong>de</strong> dois modos diferentes: o<br />

modo transparente (AT) ou o modo API (Application Programming Interface).<br />

� Modo Transparente: neste modo, os dados são recebidos da UART pelo<br />

pino RX do dispositivo ZigBee e são colocados na fila <strong>para</strong> transmissão via<br />

RF. Os dados recebidos pelo canal são transmitidos pelo pino TX. Neste<br />

modo <strong>de</strong> operação a transmissão é idêntica à comunicação RS-232<br />

padrão;<br />

� Modo API: este modo é baseado em frames, ou seja, os dados<br />

transmitidos e recebidos estão contidos em frames, que <strong>de</strong>finem<br />

operações ou eventos <strong>de</strong>ntro do módulo. Com as características <strong>de</strong>ste<br />

modo é possível enviar en<strong>de</strong>reço fonte, en<strong>de</strong>reço <strong>de</strong>stino, nome do nó,<br />

estado entre outras informações. Entre as principais vantagens do modo<br />

API po<strong>de</strong>-se citar a capacida<strong>de</strong> <strong>de</strong> transmitir dados <strong>para</strong> diversos <strong>de</strong>stinos<br />

sem a necessida<strong>de</strong> <strong>de</strong> entrar em modo comando. O módulo configurado<br />

neste modo recebe estado <strong>de</strong> sucessos ou falhas dos pacotes que estão<br />

sendo enviados e é capaz <strong>de</strong> i<strong>de</strong>ntificar o en<strong>de</strong>reço <strong>de</strong> on<strong>de</strong> partiu cada<br />

pacote recebido.<br />

A configuração dos módulos no modo AT po<strong>de</strong> ser feita enviando os<br />

comandos <strong>para</strong> o dispositivo via terminal, em formato ASCII ou hexa<strong>de</strong>cimal, ou<br />

utilizando o software X-CTU que é distribuído gratuitamente pela Maxstream. A<br />

configuração <strong>para</strong> o modo API <strong>de</strong>ve ser feita enviando frames em hexa<strong>de</strong>cimal.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 37<br />

2.5.7.1 Comandos AT<br />

Os comandos AT possuem uma estrutura como a ilustrada na Figura 14.<br />

Figura 14. Estrutura dos comandos AT.<br />

Antes <strong>de</strong> enviar os comandos AT é preciso que o módulo ZigBee esteja no<br />

modo comando. Para o dispositivo entrar em modo comando digita-se os caracteres<br />

do sinal <strong>de</strong> soma três vezes (+++) e espera uma resposta OK do dispositivo. Após o<br />

dispositivo enviar o sinal OK, os comandos AT já po<strong>de</strong>m ser enviados <strong>para</strong> a<br />

configuração. Após o envio da resposta OK, se nenhum comando for enviado<br />

durante um período <strong>de</strong> aproximadamente 10 segundos <strong>para</strong> o módulo ele entrará no<br />

estado idle (estado pronto <strong>para</strong> transmitir e receber dados). A Tabela 4 lista alguns<br />

comandos AT utilizados <strong>para</strong> programar os dispositivos.<br />

Tabela 4. Comandos AT <strong>para</strong> programação do XBee/XBee-ProTM (MESSIAS, 2008).<br />

COMANDO RESPOSTA DO<br />

XBEE/XBEE-PROTM<br />

SIGNIFICADO<br />

+++ OK Faz o módulo XBee/XBee-Pro entrar no modo<br />

comando (os caracteres "+++" <strong>de</strong>vem ser<br />

digitados num intervalo <strong>de</strong> 1 segundo).<br />

ATDL5001 OK <br />

Após o OK, se nenhum comando for digitado<br />

num intervalo <strong>de</strong> +/- 10 segundos, o módulo<br />

volta ao estado idle (pronto <strong>para</strong> transmitir ou<br />

receber).<br />

Altera o en<strong>de</strong>reço <strong>de</strong>stino (DL) do módulo local<br />

<strong>para</strong> 5001.<br />

ATDL 5001 Lê o en<strong>de</strong>reço <strong>de</strong>stino (DL) do módulo local.<br />

ATMY5000 OK Altera o en<strong>de</strong>reço fonte (MY) do módulo local


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 38<br />

ATMY 5000 <br />

<strong>para</strong> 5000.<br />

Lê o en<strong>de</strong>reço fonte (MY) do módulo local.<br />

ATWR OK Grava as modificações efetuadas, na memória<br />

não volátil (Flash) do módulo.<br />

ATCN OK Fecha o modo comando e volta ao estado idle<br />

(pronto <strong>para</strong> transmitir ou receber)<br />

ATNI Nome_do_Modulo<br />

<br />

OK Atribui um nome <strong>para</strong> o módulo XBee-XBee-<br />

Pro - "Nome_do_Modulo". Po<strong>de</strong> usar até 20<br />

caracteres ASCII <strong>para</strong> nomear o módulo.<br />

ATNI Nome_do_Modulo Retorna o nome do módulo XBee/XBee-Pro.<br />

ATVR 10C0 Retorna a versão do firmware gravado no<br />

módulo XBee/XBee-Pro.<br />

ATHV 180B Retorna a versão do hardware do módulo<br />

XBee/XBee-Pro.<br />

ATBD3 OK Muda a velocida<strong>de</strong> do módulo <strong>para</strong> trabalhar<br />

com 9600bps.<br />

2.5.7.2 Comandos API<br />

Para iniciar a configuração do modo API <strong>de</strong>ve-se selecionar o valor um <strong>para</strong> o<br />

parâmetro AP, fazendo com que o módulo fique habilitado. Os comandos API po<strong>de</strong>m<br />

agora ser enviados aos módulos remotos. Cuidado é essencial na construção dos<br />

frames, pois um frame construído errado será <strong>de</strong>scartado pelo módulo local sem ao<br />

menos ser enviado. A Figura 8 ilustra um frame <strong>de</strong> dados no modo API.<br />

Figura 15. Frame <strong>de</strong> dados no modo API (XBee® ZB ZigBee® RF Modules, 2011)<br />

O frame é constituído por:<br />

� Start Delimiter: <strong>de</strong>limitador <strong>de</strong> inicio. Qualquer dado recebido antes <strong>de</strong>le é<br />

<strong>de</strong>scartado;<br />

� Length: tamanho do pacote;


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 39<br />

� Frame Data: dados que estão sendo transmitidos;<br />

� Cheksum: calculado <strong>para</strong> verificar a integrida<strong>de</strong> dos dados.<br />

Com o ZigBee configurado no modo API tem-se, entre outras, as seguintes<br />

vantagens: a possibilida<strong>de</strong> <strong>de</strong> transmitir dados <strong>para</strong> múltiplos <strong>de</strong>stinos sem ser<br />

necessário entrar no modo comando; os dispositivos recebem estados <strong>de</strong> sucesso<br />

ou falha <strong>para</strong> cada pacote transmitido; é possível i<strong>de</strong>ntificar o en<strong>de</strong>reço <strong>de</strong> on<strong>de</strong><br />

partiu cada pacote.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 40<br />

3 Materiais e Métodos<br />

3.1 Software<br />

O componente <strong>de</strong> software do sistema é composto pelo programa <strong>de</strong><br />

interface, que permitirá ao usuário enviar comandos e visualizar na tela informações<br />

sobre a presença <strong>de</strong> obstáculos, nível <strong>de</strong> bateria e velocida<strong>de</strong> do carro.<br />

Nas subseções seguintes são apresentados trechos do programa que foi<br />

implementado.<br />

3.1.1 Software <strong>de</strong> Controle<br />

O sistema <strong>de</strong> controle foi <strong>de</strong>senvolvido na linguagem <strong>de</strong> programação C++.<br />

Foi utilizado ambiente <strong>de</strong> <strong>de</strong>senvolvimento C++ Buil<strong>de</strong>r. O C++ Buil<strong>de</strong>r é uma<br />

ferramenta <strong>de</strong> fácil uso e fornece diversas funcionalida<strong>de</strong>s necessárias <strong>para</strong> a<br />

construção <strong>de</strong> uma interface amigável e <strong>de</strong> fácil operação. As Figuras 16 e 17<br />

ilustram a interface principal do sistema <strong>de</strong> controle <strong>de</strong>senvolvido.<br />

Figura 16. Software <strong>de</strong> controle <strong>de</strong>sligado.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 41<br />

Figura 17. Software <strong>de</strong> Controle ligado e com a opção <strong>de</strong> enviar comandos pelo teclado, <strong>de</strong>sativada.<br />

Os botões ilustrados na Figura 18 são o botão <strong>de</strong> ligar e <strong>de</strong>sligar o software<br />

(ON/OFF) e o botão <strong>de</strong> ativar o envio <strong>de</strong> comandos pelo teclado, respectivamente da<br />

direita <strong>para</strong> a esquerda. Os indicadores luminosos ao lado dos botões informam<br />

quando estão ativados: a cor ver<strong>de</strong> indica ativado e a cor vermelha indica<br />

<strong>de</strong>sativado. O indicador ver<strong>de</strong>, ao lado do botão ON/OFF, indica que o software está<br />

ligado. O indicador vermelho, ao lado do botão <strong>de</strong> ativar comandos pelo teclado,<br />

indica que esta opção não está ativa.<br />

Figura 18. Botão ON/OFF e botão ativar envio <strong>de</strong> comandos pelo teclado<br />

A Figura 19 ilustra os botões <strong>de</strong> envio <strong>de</strong> comandos <strong>de</strong> direção <strong>para</strong> o<br />

computador. Cada botão guia o carro <strong>para</strong> a direção indicada pela seta <strong>de</strong>senhada<br />

em cima do botão.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 42<br />

Figura 19. Botões <strong>de</strong> direção.<br />

A velocida<strong>de</strong> po<strong>de</strong> ser selecionada <strong>de</strong>ntre três valores diferentes, como<br />

ilustrado na Figura 20, clicando nos respectivos números. O valor da velocida<strong>de</strong><br />

instantânea também é informado.<br />

Figura 20. Escolha da velocida<strong>de</strong> e indicação da velocida<strong>de</strong> instantânea do carro.<br />

Ao clicar nas figuras do farol ou da buzina, ilustrados na Figura 21, o carro irá<br />

executar a ação. No caso do farol, o ícone ficará aceso enquanto o farol estiver<br />

aceso e o ícone ficara apagado enquanto o farol estiver apagado. O ícone da buzina<br />

quando ativada muda rapidamente <strong>para</strong> a cor amarela e volta novamente à cor azul<br />

(cor do ícone quando a buzina não está ativada).<br />

Figura 21. Ícones <strong>de</strong> farol e buzina.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 43<br />

A barra <strong>de</strong> progresso (Figura 22) indica o nível da bateria. À medida que a<br />

carga da bateria vai diminuindo, a barra <strong>de</strong> progresso vai diminuindo<br />

simultaneamente.<br />

Figura 22. . Indicador <strong>de</strong> nível <strong>de</strong> bateria.<br />

Os valores das distâncias captadas pelos sensores <strong>de</strong> obstáculos e pelos<br />

sonares são informados ao usuário, conforme ilustra a Figura 23. O indicador<br />

vermelho refere-se aos sensores localizados nos cantos do carro e que são usados<br />

<strong>para</strong> indicar distâncias pequenas (entre 5 e 15 cm). O indicador azul refere-se aos<br />

sonares que são localizados nas extremida<strong>de</strong>s do carro e são usados <strong>para</strong> indicar<br />

distâncias maiores (entre 15 e 30 cm).<br />

Figura 23. Indicadores <strong>de</strong> distância.<br />

O programa utiliza a estrutura DCB, que é um API do Windows <strong>para</strong> executar<br />

funções padrões <strong>de</strong> manipulação da porta serial, como criar, abrir e fechar a porta,<br />

ou mesmo leitura e escrita.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 44<br />

Ao inicializar o programa clicando no botão ON/OFF, automaticamente será<br />

executada a rotina <strong>de</strong> criação (Figura 24) e configuração da porta serial (Figura 25).<br />

A linha 1 mostra a <strong>de</strong>nominação do i<strong>de</strong>ntificador da porta serial. Na linha 2 é criado<br />

um ponteiro que receberá o nome da porta (que no caso é “COM1”). O código entre<br />

as linhas 3 e 11 são configurações padrão da API do Windows <strong>para</strong> criação da porta<br />

serial. Na linha 12 é feito um teste <strong>para</strong> avaliar se a porta serial foi criada<br />

corretamente, em caso negativo a função retornará um erro.<br />

Figura 24. Rotina <strong>de</strong> Criação da Porta Serial.<br />

Com essas funções ainda é possível configurar características da porta serial<br />

como velocida<strong>de</strong> (BaudRate, linha 17), o tamanho da informação que será enviada<br />

(ByteSize, linha 18), parida<strong>de</strong> (Parity, linha 19) e se há ou não bit <strong>de</strong> <strong>para</strong>da<br />

(StopBits, linha 20).<br />

Figura 25. Código da configuração da Porta Serial.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 45<br />

A Figura 26 ilustra como é composta a informação que será enviada do<br />

computador <strong>para</strong> o carrinho através da variável BufferEnvia.<br />

Figura 26. Esquema indicando a composição do conteúdo das mensagens.<br />

Verifica-se que o inicio (“#”) e o fim (“;”) da palavra que será inserida na<br />

variável “BufferEnvia” são caracteres que fazem parte do protocolo <strong>de</strong><br />

reconhecimento e são importantes, pois quando a informação chegar ao <strong>de</strong>stino<br />

<strong>de</strong>verá ser feita uma análise do protocolo <strong>para</strong> validar se é uma informação válida.<br />

Os valores que serão postos no protocolo correspon<strong>de</strong>m a:<br />

� Posição1: direção que o carro <strong>de</strong>ve seguir; po<strong>de</strong> ser 2 (frente), 3 (trás), 6<br />

(frente e direita), 8 (frente e esquerda), 7 (trás e direita) e 9 (trás e<br />

esquerda);<br />

� Posição 2: informa se os comandos estão sendo enviados pelo teclado ou<br />

não. Os valores po<strong>de</strong>m ser 1 (<strong>para</strong> envio do teclado ativado) ou 0 (<strong>para</strong><br />

envio do teclado <strong>de</strong>sativado);<br />

� Posição 3: envia o valor 1 ou 0, <strong>para</strong> acen<strong>de</strong>r ou apagar o farol,<br />

respectivamente;<br />

� Posição 4: envia o valor 1 <strong>para</strong> ativar a buzina e o valor 0 <strong>para</strong> não ativar;<br />

� Posição 5: indica a velocida<strong>de</strong> selecionada, que po<strong>de</strong> ser 1, 2 ou 3.<br />

Para enviar o comando pela porta serial é usada a função da API do Windows<br />

que escreve na porta serial. Essa função é mostrada na Figura 27. Ela tem como<br />

parâmetros o nome da porta (nome que foi dado ao criar a porta), a string que será


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 46<br />

enviada, o seu tamanho e uma variável <strong>de</strong>nominada “BytesEscritos” (padrão <strong>para</strong><br />

esta função) e o valor NULL que é o valor padrão.<br />

Figura 27. Código da função da API do Windows que escreve na porta serial.<br />

As teclas UP, DOWN, LEFT e RIGHT representam as direções: frente, trás,<br />

esquerda e direita, respectivamente. Lembrando que ao enviar um comando <strong>para</strong> a<br />

direita ou esquerda ele <strong>de</strong>ve ser complementado com o comando <strong>de</strong> ir <strong>para</strong> frente<br />

ou <strong>para</strong> trás, ou seja, a combinação <strong>de</strong>ssas teclas (Tabela 5) faz com que o carro se<br />

mova em direções simultâneas como, frente e esquerda, frente e direita, trás e<br />

esquerda e trás e direita.<br />

As teclas F6 e F7 têm como funções acen<strong>de</strong>r o farol e buzinar,<br />

respectivamente. Na Figura 28 verifica-se o trecho do código responsável por<br />

interpretar qual(ais) tecla(s) está(ão) sendo pressionada(s).


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 47<br />

Figura 28. Código da função que interpreta a tecla que foi pressionada.<br />

A função FormKeyDown() é responsável por capturar o código da tecla que<br />

está sendo pressionada. Após a tecla ser pressionada a função será<br />

automaticamente executada. Antes <strong>de</strong> entrar no comando switch um teste é feito<br />

(linha 5) <strong>para</strong> verificar se o botão <strong>de</strong> enviar comandos via teclado está ativado. Caso<br />

não esteja, não será possível enviar comandos pressionando nenhuma tecla.<br />

O comando switch que está na linha 11 verifica qual tecla foi pressionada (as<br />

teclas UP, DOWN, LEFT, RIGHT, F6 ou F7). Após essa verificação o valor <strong>de</strong>ssa<br />

tecla será somado à variável buffer. O protocolo é formado (linha 15) capturando


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 48<br />

informações da aplicação, tais como buzina, farol e velocida<strong>de</strong>. O resultado é<br />

enviado pela função EscreveDados().<br />

A função FormKeyUp() (Figura 29) é responsável por verificar quando uma<br />

tecla foi solta, ou seja, quando o usuário <strong>de</strong>ixou <strong>de</strong> pressioná-la. Assim, esta função<br />

irá subtrair o valor da referida tecla da variável buffer, montar o protocolo e enviar.<br />

Figura 29. Código da função que interpreta a tecla que foi pressionada.<br />

Tabela 5. Lista dos valores e as principais combinações <strong>de</strong> cada tecla.<br />

TECLA DIREÇÃO CÓDIGO<br />

KEY_UP FRENTE 2<br />

KEY_DOWN TRAS 3<br />

KEY_UP + KEY_LEFT FRENTE+ESQUERDA 8<br />

KEY_UP + KEY_RIGHT FRENTE+DIREITA 6<br />

KEY_DOWN + KEY_LEFT TRAS+ESQUERDA 9<br />

KEY_DOWN + KEY_RIGHT TRAS+DIREITA 7


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 49<br />

As informações do software são atualizadas a cada segundo pela função<br />

ilustrada na Figura 30. O componente timer é habilitado quando o usuário clica no<br />

botão ON/OFF (<strong>para</strong> ligar o software) e <strong>de</strong>sabilitado quando o usuário clica no<br />

mesmo botão (<strong>para</strong> <strong>de</strong>sligar o software).<br />

Figura 30. Código da função timer, que atualiza as informações na tela do software <strong>de</strong> controle.<br />

A função TrataDadosRecebidos() é responsável por particionar o protocolo<br />

em informações menores e atribuir a cada componente o valor correto. Os valores<br />

são mostrados pelos componentes do software <strong>de</strong> aplicação encarregados <strong>de</strong><br />

informar as distâncias, velocida<strong>de</strong> e nível <strong>de</strong> bateria.<br />

Os valores das distâncias <strong>para</strong> os sensores <strong>de</strong> obstáculos localizados nos<br />

cantos do carro só serão mostrados se forem maiores do que 5 cm e menores do<br />

que 15 cm. As distâncias captadas pelos sonares serão mostradas quando forem<br />

maiores do que 15 cm e menores do que 30 cm. Na barra <strong>de</strong> menu do programa<br />

ainda po<strong>de</strong>m ser encontradas as opções “Ajuda” (Figura 31) e “Sobre” (Figura 32),<br />

as quais abrem uma janela explicando como usar as funcionalida<strong>de</strong>s do software e<br />

uma janela informativa sobre o programa, respectivamente.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 50<br />

Figura 31. Janela <strong>de</strong> ajuda do sistema.<br />

Figura 32. Tela com informações sobre o sistema.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 51<br />

3.2 Hardware<br />

O hardware do sistema <strong>de</strong>senvolvido é composto pelo carro <strong>de</strong> brinquedo, o<br />

qual será controlado, e as placas <strong>de</strong> controle, on<strong>de</strong> uma é afixada ao computador<br />

<strong>para</strong> enviar e receber os comandos e a outra afixada ao carro, a fim <strong>de</strong> receber os<br />

comandos <strong>de</strong> controle do carro e enviar as informações referentes à velocida<strong>de</strong>,<br />

nível <strong>de</strong> bateria e existência <strong>de</strong> obstáculo.<br />

Nas seções subsequentes o hardware, bem como os principais componentes<br />

e circuitos <strong>de</strong> cada placa são explicados <strong>de</strong>talhadamente.<br />

3.2.1 Carro <strong>de</strong> Controle<br />

Para o protótipo <strong>de</strong>ste projeto foi utilizado um carrinho <strong>de</strong> controle remoto,<br />

como ilustrado na Figura 33, do qual foi <strong>de</strong>scartada sua placa <strong>de</strong> controle. A escolha<br />

do carrinho <strong>de</strong>u-se pelo fato da parte mecânica estar parcialmente pronta e se<br />

assemelhar com a parte física do robô.<br />

Figura 33. Carro Utilizado.<br />

O carro possui dois motores CC sendo um ligado aos pneus dianteiros e outro<br />

aos traseiros. O motor ligado aos pneus traseiros tem sua velocida<strong>de</strong> controlada<br />

pelo sinal PWM emitido pelo microcontrolador. O ligado aos pneus dianteiros possui


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 52<br />

um sistema capaz <strong>de</strong> fazer com que as rodas girem completamente <strong>para</strong> um lado ou<br />

<strong>para</strong> o outro.<br />

O carro possui ainda um buzina e LED’s nas posições dos faróis. Um<br />

diagrama <strong>de</strong> blocos simplificado indicando o posicionamento dos sensores,<br />

sinalizadores, motores, microcontrolador e XBee/ZigBee está representado na<br />

Figura 34.<br />

3.2.2 XBee XB24-ZB TM<br />

Figura 34. Posicionamento dos componentes <strong>de</strong> hardware no carro.<br />

O XBee utilizado na implementação do sistema foi o XB24-ZB (Figura 35).<br />

Figura 35. XBee XB24 - ZB.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 53<br />

O dispositivo <strong>de</strong>ve ser alimentado por 3,3 V. O site do fabricante enfatiza que<br />

entre as principais características do dispositivo po<strong>de</strong>-se <strong>de</strong>stacar: i<strong>de</strong>al <strong>para</strong><br />

aplicações <strong>de</strong> baixo consumo <strong>de</strong> energia e baixo custo.<br />

Principais características listadas no datasheet do dispositivo:<br />

� Frequência <strong>de</strong> Transmissão: 2.4 GHz;<br />

� Potência <strong>de</strong> Transmissão: 1,25 mW;<br />

� Sensibilida<strong>de</strong> do receptor: -96 dBm;<br />

� Alcance Máximo estimado: até 120m (+1 dBm);<br />

� Topologias <strong>de</strong> re<strong>de</strong>: P-to-P, P-to-M, ZigBee/Mesh;<br />

� Sleep Mo<strong>de</strong> < 1µA;<br />

� Atualização remota: firmware e <strong>para</strong>metrização;<br />

� DSSS (Direct Sequence Spread Spectrum);<br />

� RF Data Rate 250 Kbps;<br />

� Segurança: 128-bit AES;<br />

� Modo <strong>de</strong> operação AT e API;<br />

� (10) GPIO, (4) ADC e 3V3 CMOS UART;<br />

� Antena Wire - Referência:WIT.<br />

O dispositivo po<strong>de</strong> ser programado <strong>de</strong> duas formas. Na primeira foi utilizado o<br />

programa X-CTU (aplicativo da Maxstream disponibilizado <strong>para</strong> download<br />

gratuitamente) e a segunda forma foi conectando o dispositivo à PAC e<br />

pressionando os botões <strong>de</strong> configuração. Os dois métodos são especificados a<br />

seguir.<br />

Para a programação do dispositivo utilizando o software X-CTU foram<br />

seguidos os seguintes passos:


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 54<br />

1º Passo: conectar o XBee a PAPC e abrir o software X-CTU;<br />

2º Passo: selecionar a porta serial a qual a sua placa está conectada e<br />

fazer o teste <strong>de</strong> comunicação clicando em “Test/ Query”;<br />

3º Passo: na aba “Mo<strong>de</strong>m Configuration”, selecionar as opções:<br />

� Function Set: ZigBee Coordinator AT (<strong>para</strong> o XBee que será<br />

acoplado a PAPC) e ZigBee Router AT (<strong>para</strong> o XBee que será<br />

acoplado a PAC);<br />

� ID: inserir um número <strong>para</strong> i<strong>de</strong>ntificador <strong>de</strong> re<strong>de</strong>, caso o<br />

escolha o número 0, o coor<strong>de</strong>nador irá selecionar um número<br />

i<strong>de</strong>ntificador <strong>de</strong> re<strong>de</strong> randomicamente;<br />

� NI: o nome do i<strong>de</strong>ntificador <strong>de</strong> cada módulo: PlacaPC (<strong>para</strong> o<br />

XBee coor<strong>de</strong>nador) e PlacaCarro (<strong>para</strong> o XBee roteador);<br />

� BD: selecionar a velocida<strong>de</strong> 3 (9600 bps);<br />

� EE: 1 (habilita a segurança do módulo);<br />

� KY: entrar com a chave (16 bytes hexa<strong>de</strong>cimal <strong>de</strong> dois bits<br />

cada). Por exemplo:<br />

AAABACADAEAFAGAHAIAJAKALAMANAOAP.<br />

4º Passo: conectar à PAC o XBee roteador e ligar a alimentação;<br />

5º Passo: conectar à PAPC o XBee coor<strong>de</strong>nador;<br />

6º Passo: na aba terminal, no software X-CTU, inserir os seguintes<br />

comandos:<br />

� +++ (após alguns segundos o XBee respon<strong>de</strong>rá com “OK”);<br />

� ATND: aparecerá todos os dispositivos que po<strong>de</strong>m ser<br />

alcançados pelo XBee coor<strong>de</strong>nador. Deve-se i<strong>de</strong>ntificar o<br />

XBee acoplado à PAC que foi <strong>de</strong>nominado PlacaCarro;


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 55<br />

� ATDNPlacaCarro: o comando ATDN seguido do nome do<br />

i<strong>de</strong>ntificador do outro módulo XBee, faz com o coor<strong>de</strong>nador<br />

reconheça o outro módulo como sendo o receptor/emissor dos<br />

dados. Após o comando o XBee respon<strong>de</strong>rá com “OK”;<br />

� ATRW: <strong>para</strong> escrever as configurações. Po<strong>de</strong>-se também<br />

voltar até a aba “Mo<strong>de</strong>m Configuration” e clicar na opção<br />

“Write”.<br />

Outra forma <strong>de</strong> configurar os módulos XBee é inserindo-os na placa PAC e<br />

seguindo os seguintes passos:<br />

1º Passo: conecte o XBee que será acoplado ao carro na placa PAC e aperte<br />

o botão 3 da placa;<br />

2º Passo: retire o Xbee da PAC e conecte na PAPC;<br />

3º Passo: conecte o Xbee que será o acoplado na PAPC e conecte na PAC;<br />

4º Passo: com as duas placas ligadas na energia, porém com os módulos<br />

trocados, ou seja, o módulo XBee que ficará no carro conectado na PAPC e o<br />

módulo XBee que ficará conectado ao computador na PAC. Pressione o<br />

botão 4 da placa;<br />

5º Passo: <strong>de</strong>sligue a energia e troque os módulos XBee <strong>de</strong> placa. Os módulos<br />

já estão configurados <strong>para</strong> enviar e receber informações;<br />

Com a segurança habilitada, os módulos que não fazem parte da re<strong>de</strong><br />

criptografada não conseguem capturar os dados que estão sendo transmitidos, pois<br />

não foram configurados e não possuem a chave <strong>para</strong> <strong>de</strong>codificação.<br />

3.2.3 Microcontrolador PIC16F877A<br />

O microcontrolador a ser utilizado é o PIC16F877A (Figura 36) que é<br />

fabricado pela Microchip. Os microcontroladores da família 16 possuem, entre outras<br />

vantagens, um maior número <strong>de</strong> instruções em código <strong>de</strong> máquina. Possui um


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 56<br />

encapsulamento <strong>de</strong> 40 pinos compatível com os PIC16C5X, PIC12CXXX,<br />

PIC16CXX e PIC17CXX.<br />

Figura 36. Microcontrolador PIC16F877A.<br />

Algumas características foram extraídas do datasheet do dispositivo e estão<br />

listadas a baixo:<br />

3.2.4 Sonar<br />

� Temperatura <strong>de</strong> operação entre -40 ºC e +125 ºC;<br />

� Arquitetura <strong>de</strong> 8 bits;<br />

� 32 Kbytes <strong>de</strong> memória flash, 1536 bytes <strong>de</strong> memória RAM e 256 bytes<br />

<strong>de</strong> memória EEPROM;<br />

� 2 módulos CCP (Capture Compare PWM);<br />

� 4 timers;<br />

� Oscilador interno <strong>de</strong> 32 KHz ou 8MHz;<br />

� Conversor analógico digital com 10 bits <strong>de</strong> resolução;<br />

� USART compatível com RS-232 e RS-485.<br />

Sonar é uma sigla inglesa <strong>para</strong> Sound Navigation And Ranging que traduzida<br />

significa navegação e <strong>de</strong>terminação <strong>de</strong> distância pelo som. A característica principal<br />

do sonar é sua capacida<strong>de</strong> <strong>de</strong> mudar o comportamento <strong>de</strong> uma gran<strong>de</strong>za, que po<strong>de</strong>


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 57<br />

ser elétrica, em função <strong>de</strong> algum estímulo recebido. O sonar utilizado será o LV-<br />

MaxSonar® EZ1 que está ilustrado na Figura 37.<br />

Figura 37. Sonar.<br />

O sonar utilizado po<strong>de</strong> ser alimentado com 2,5 V a 5,5 V, com consumo <strong>de</strong><br />

2mA. É possível <strong>de</strong>tectar objetos entre 0 e 6,45 m. Objetos entre 0 e 0,15 m são<br />

medido como 0,15 m. Há dois modos <strong>de</strong> operação: automático, o qual me<strong>de</strong> e<br />

retorna valores continuamente; e operação manual, que permite receber os valores<br />

apenas quando <strong>de</strong>sejado. Opera em 42 KHz.<br />

O fabricante chama a atenção <strong>para</strong> a valida<strong>de</strong> do valor lido, pois quando uma<br />

distância gran<strong>de</strong> é medida imediatamente após uma medição <strong>de</strong> uma distância<br />

pequena, a saída analógica po<strong>de</strong> não refletir o valor correto.<br />

Cada vez que o sonar é ligado ele se auto-calibra no primeiro ciclo. É<br />

importante que o ambiente esteja livre <strong>de</strong> obstáculos quando o sonar estiver fazendo<br />

a calibração. A presença <strong>de</strong> um objeto próximo ao dispositivo quando este estiver<br />

sendo calibrado, po<strong>de</strong>rá ocasionar a negligência posterior <strong>de</strong> objetos situados<br />

naquela distância. Os valores retornados pelo sonar são mais confiáveis quando os<br />

obstáculos estão a uma distância acima <strong>de</strong> 0,35 m.<br />

O dispositivo utilizado não usa compensação <strong>de</strong> temperatura na calibração.<br />

Logo, se a temperatura, umida<strong>de</strong> ou tensão mudarem o sensor precisará efetuar<br />

uma nova calibração. A recalibração é feita ao <strong>de</strong>sligar e ligar novamente o<br />

dispositivo na alimentação.<br />

Por estarem a uma frequência acima <strong>de</strong> 20.000 Hz, as ondas utilizadas pelos<br />

sonares (ultrasons), não são perceptíveis aos ouvidos humanos. A ativida<strong>de</strong> do


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 58<br />

sonar é baseada no uso do eco, ou seja, o sinal ultrassônico é enviado no ambiente<br />

e o tempo <strong>de</strong> recepção do seu eco é medido <strong>para</strong> o cálculo da distância, conforme<br />

ilustrada a Figura 38.<br />

Figura 38. Princípio do eco.<br />

De forma mais <strong>de</strong>talhada, o sinal emitido pelo sonar é dirigido até encontrar<br />

um obstáculo. As vibrações mecânicas do ar ocasionadas pelo encontro com o<br />

obstáculo serão refletidas e voltarão <strong>de</strong> encontro ao emissor. O sistema<br />

microcontrolado implementado é responsável por receber estes dados do sonar e<br />

calcular a distância até o anteparo.<br />

O circuito utilizado <strong>para</strong> o funcionamento do sonar é <strong>de</strong> simples<br />

implementação, como ilustrado na Figura 39, sendo necessário apenas que os pinos<br />

Vcc e GND estejam <strong>de</strong>vidamente conectados e o sonar seja monitorado pelo<br />

microcontrolador, o que é feito por um pino <strong>de</strong> entrada analógica.<br />

Figura 39. Diagrama do circuito elétrico utilizado <strong>para</strong> monitorar o sonar.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 59<br />

O cálculo da distância feito pelo microcontrolador, tendo como parâmetro a<br />

tensão emitida pelo sonar, é feito efetuando uma regra <strong>de</strong> três com os valores que<br />

são <strong>de</strong>finidos no datasheet do dispositivo.<br />

O datasheet especifica que ao alimentar o dispositivo com 5 V temos uma<br />

proporção <strong>de</strong> aproximadamente 9,8 mV/pol, e ao alimentar com 3,3 V temos uma<br />

proporção <strong>de</strong> aproximadamente 6,4 mV/pol. O fabricante informa que ao alimentar o<br />

dispositivo com 5 V sua precisão é melhor que 2%. Além disso, alimentado com 3,3<br />

V o resultado po<strong>de</strong> ser alterado em 1% ou 2% maior que o real. Assim, os cálculos<br />

<strong>para</strong> a distância foram efetuados da seguinte forma, consi<strong>de</strong>rando a alimentação <strong>de</strong><br />

5 V:<br />

Sendo:<br />

x = valor <strong>de</strong> entrada da tensão em mV;<br />

y = o valor da distância calculada em cm.<br />

(VI)<br />

(VII)<br />

A <strong>de</strong>svantagem em utilizar este tipo <strong>de</strong> tecnologia é o fato da velocida<strong>de</strong> <strong>de</strong><br />

propagação do som sofrer algumas alterações ocasionadas por uma série <strong>de</strong><br />

fatores, <strong>de</strong>ntre os quais po<strong>de</strong>mos citar a temperatura e a umida<strong>de</strong>.<br />

No sistema <strong>de</strong> telemetria proposto, o sonar será utilizado <strong>para</strong> <strong>de</strong>tectar<br />

obstáculos a uma distância gran<strong>de</strong> e <strong>para</strong> distâncias menores serão utilizados os<br />

sensores <strong>de</strong> obstáculos <strong>de</strong>scritos na próxima seção.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 60<br />

3.2.5 Sensor <strong>de</strong> Obstáculos<br />

Os sensores utilizados <strong>para</strong> a <strong>de</strong>tecção <strong>de</strong> obstáculos a pequenas distâncias<br />

são compostos por um foto-emissor e um foto-sensor. A escolha por esse tipo <strong>de</strong><br />

sensor ocorreu pelo fato <strong>de</strong>les serem eficientes <strong>para</strong> a <strong>de</strong>tecção <strong>de</strong> obstáculos a<br />

pequenas distâncias e terem um custo baixo.<br />

Os fototransistores são dispositivos semicondutores que tem como<br />

característica principal variar a sua resistência elétrica em função da intensida<strong>de</strong> <strong>de</strong><br />

luz inci<strong>de</strong>nte. Estes dispositivos são normalmente utilizados <strong>para</strong> acionar<br />

dispositivos eletro-eletrônicos, tais como alarmes, trancas elétricas, controles<br />

remotos, entre outros.<br />

Para acionar o fototransistor é necessário que uma luz ou radiação<br />

infravermelho incida sobre ele fazendo sua resistência elétrica cair e como<br />

consequência conduzir corrente elétrica.<br />

O infravermelho é comumente utilizado em sistemas <strong>de</strong> envio <strong>de</strong> comandos a<br />

distância principalmente nos que usam ondas <strong>de</strong> rádio, pois não sofre interferência<br />

<strong>de</strong> outras ondas eletromagnéticas. O circuito ilustrado na Figura 40 correspon<strong>de</strong> ao<br />

circuito <strong>de</strong>tector <strong>de</strong> obstáculos.<br />

Figura 40. Diagrama elétrico do circuito <strong>de</strong>tector <strong>de</strong> obstáculos.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 61<br />

Este módulo funcionará utilizando o feixe <strong>de</strong> luz emitido pelo foto-emissor que<br />

ao se chocar com algum obstáculo refletirá em direção ao foto-sensor, fazendo com<br />

que ele entre em condução. Para cada distância do obstáculo o sensor emite um<br />

valor <strong>de</strong> tensão diferente. Assim, é necessário encontrar uma correspondência entre<br />

estes dois parâmetros: distância e tensão.<br />

Como listado na Tabela 6 primeiramente foram coletados, <strong>para</strong> cada sensor,<br />

valores <strong>de</strong> distâncias e a respectiva tensão que o sensor emitia. As distâncias foram<br />

anotadas quando havia mudança na tensão, emitida pelo sensor, que era<br />

monitorada com o auxilio <strong>de</strong> um voltímetro digital.<br />

Tabela 6. Valores das tensões emitidas pelos sensores e suas respectivas distâncias.<br />

Medições Y(cm) X(V)<br />

Sensor 1 Sensor 2 Sensor 3 Sensor 4<br />

1 1 4,43 4,36 4,52 4,47<br />

2 2 4,54 4,44 4,57 4,54<br />

3 3 4,58 4,51 4,59 4,57<br />

4 6 4,60 4,66 4,69 4,63<br />

5 8 4,63 4,72 4,73 4,65<br />

6 9 4,66 4,73 4,74 4,66<br />

7 10 4,67 4,74 4,76 4,67<br />

8 13 4,69 4,76 4,77 4,68<br />

9 15 4,70 4,77 4,78 4,69<br />

10 20 4,72 4,79 4,79 4,70<br />

Com os dados encontrados notou-se que não seguiam uma tendência que<br />

po<strong>de</strong>ria ser tida como linear. Para analisar os dados e encontrar uma função que<br />

melhor representasse a correspondência entre tensão e distância, um gráfico <strong>de</strong><br />

dispersão foi plotado utilizando o Excel.<br />

A partir dos gráficos gerados foi utilizado o recurso <strong>de</strong> inserir linha <strong>de</strong><br />

tendência e gerar equações correspon<strong>de</strong>ntes. As linhas <strong>de</strong> tendência testadas <strong>para</strong><br />

verificar a semelhança com os dados experimentais foram à exponencial, linear,<br />

logarítmica, polinomial e potência. Após a análise das curvas chegou-se a conclusão<br />

<strong>de</strong> que a linha <strong>de</strong> tendência exponencial melhor se a<strong>de</strong>quava aos dados obtidos<br />

experimentalmente. Os gráficos com a linha <strong>de</strong> tendência exponencial foram


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 62<br />

plotados <strong>para</strong> os dados dos sensores 1, 2, 3 e 4, respectivamente, e são ilustrados<br />

na Figura 41 (a, b, c, d).<br />

Figura 41. Gráfico Tensão x Distância <strong>para</strong> (a) o sensor um, (b) o sensor dois, (c) o sensor três, (d) o<br />

sensor quatro.<br />

A Tabela 7 lista as equações que foram encontradas com o auxilio do Excel e<br />

que serão utilizadas <strong>para</strong> calcular a distância do obstáculo, tendo como parâmetro<br />

<strong>de</strong> entrada a tensão emitida pelo sensor.<br />

Tabela 7. Equações <strong>de</strong> cálculo da distância <strong>para</strong> cada sensor.<br />

Sensor Equação<br />

1<br />

2<br />

3<br />

4<br />

y = 2E-21e 10,684x<br />

y = 3E-12e 6,1422x<br />

y = 1E-19e 9,6485x<br />

y = 2E-25e 12,646x<br />

(VIII)<br />

(IX)<br />

(X)<br />

(XI)


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 63<br />

3.2.6 Sensor <strong>de</strong> Velocida<strong>de</strong><br />

O módulo do sensor da velocida<strong>de</strong> foi implementado com um emissor<br />

infravermelho (IR) e um fototransistor. A emissão do feixe <strong>de</strong> luz proveniente do IR<br />

ao colidir com um objeto e refletir inci<strong>de</strong>m na direção do fototransistor, fazendo-o<br />

conduzir.<br />

A roda do carro, que é ilustrada na Figura 42(a), possui cinco lacunas que<br />

foram tampadas por um material branco. As lacunas mais largas não serão<br />

tampadas, fazendo assim com que não haja reflexão quando o sensor estiver<br />

passando por essa lacuna. A roda ficou como ilustrado no esquema da Figura 42(b).<br />

Figura 42. (a) Roda do carro. (b) aro da roda do carro tampada com material branco.<br />

Com esse procedimento, quando o feixe <strong>de</strong> luz incidir nas partes brancas ele<br />

será refletido e incidirá sobre o fototransistor. Quando incidir nas lacunas, não<br />

refletirá.<br />

A velocida<strong>de</strong> instantânea é calculada a cada vez que o sensor indica uma<br />

mudança <strong>de</strong> estado, ou seja, está conduzindo ou não. Para os cálculos são<br />

necessários então: a distância entre uma lacuna e outra e o tempo entre uma lacuna<br />

e outra.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 64<br />

� Distância entre lacunas: 2,5 cm;<br />

� Tempo: foi utilizado o timer1 do microcontrolador <strong>para</strong> capturar esse<br />

tempo.<br />

A captura do tempo entre uma lacuna e outra foi calculado utilizando o timer1<br />

(Figura 43) do microcontrolador. A linha T0 representa o tempo <strong>de</strong> inicio do timer,<br />

tempo igual a zero. A linha Testouro representa o tempo final do timer, ou seja, o valor<br />

máximo da contagem.<br />

Figura 43. Gráfico que representa o tempo inicial e <strong>de</strong> estouro do Timer1.<br />

Quando há uma primeira mudança <strong>de</strong> estado nos sensores o valor do timer1<br />

é capturado como tempo inicial e, com uma segunda mudança <strong>de</strong> estado, o valor do<br />

timer1 é capturado como tempo final. Há dois casos distintos na obtenção do tempo:<br />

� Como representado pela linha azul da Figura 43, quando os tempos, inicial<br />

(Tinicial) e final (Tfinal), são capturados antes do tempo <strong>de</strong> estouro, ou seja,<br />

antes que o timer1 comece sua contagem novamente, o cálculo do tempo<br />

é feito subtraindo o tempo final do inicial (tempo = Tfinal.- Tinicial);<br />

� Como representado pela linha vermelha na Figura 43, quando os tempos,<br />

inicial e final, são capturados antes (Tinicial) que o timer1 volte à contagem<br />

do zero e <strong>de</strong>pois (Tfinal), o cálculo do tempo é feito por: tempo = 0xFFF-<br />

Tinicial + Tfinal.<br />

Em seguida o valor da velocida<strong>de</strong> (em cm/s) é calculado como:


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 65<br />

(XII)<br />

O tempo tem que ser multiplicado pelo fator 1,6 µs, pois o timer1 gasta este<br />

valor <strong>para</strong> ser incrementado em uma unida<strong>de</strong>. Por exemplo, <strong>para</strong> saber quanto<br />

tempo se passou durante a contagem do timer1 <strong>de</strong> 0 a 10 basta multiplicar 10 por<br />

1,6 µs e teremos o valor do timer1 em segundos.<br />

3.2.7 Circuito <strong>de</strong> Nível <strong>de</strong> Bateria<br />

Há várias vantagens em saber qual o nível atual da carga da bateria, entre<br />

elas po<strong>de</strong>-se citar, po<strong>de</strong>r analisar se a carga é suficiente <strong>para</strong> continuar executando<br />

algumas operações, verificar a possibilida<strong>de</strong> <strong>de</strong> <strong>de</strong>sligar algumas funcionalida<strong>de</strong>s<br />

que sejam menos importantes, a necessida<strong>de</strong> da troca da bateria, entre outras.<br />

Por exemplo, se o nível da bateria estiver baixo e o carro estiver a uma<br />

distância gran<strong>de</strong> e com os faróis acesos, o operador po<strong>de</strong> simplesmente <strong>de</strong>sligar os<br />

faróis <strong>para</strong> economizar energia e conseguir trazer o carro <strong>de</strong> volta a base <strong>de</strong><br />

controle. O circuito <strong>de</strong> monitoramento do nível <strong>de</strong> bateria é ilustrado na Figura 44.<br />

Figura 44. Diagrama elétrico do circuito verificador <strong>de</strong> nível <strong>de</strong> bateria.<br />

Consi<strong>de</strong>rando a tensão <strong>de</strong> entrada no pino do PIC como sendo <strong>de</strong> 5 V e<br />

utilizando uma bateria <strong>de</strong> 9 V <strong>para</strong> a alimentação da placa que controla o carro, as<br />

resistências po<strong>de</strong>m ser encontradas por um simples divisor <strong>de</strong> tensão. Temos que:


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 66<br />

(XIII)<br />

(XIV)<br />

Assim, fixando = 8 KΩ encontramos um valor <strong>de</strong> = 10 KΩ. Pelas<br />

dificulda<strong>de</strong>s em encontrar o resistor <strong>de</strong> 8 KΩ no mercado <strong>de</strong> dispositivos eletrônicos,<br />

o mesmo foi substituído por um <strong>de</strong> 8,2 KΩ, o que nos testes experimentais se<br />

comportou <strong>de</strong> forma semelhante ao que foi dimensionado. O valor da tensão <strong>de</strong><br />

saída será correspon<strong>de</strong>nte ao nível <strong>de</strong> carga na bateria e, assim, po<strong>de</strong>-se obter a<br />

informação <strong>de</strong>sejada.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 67<br />

3.2.8 Circuito da Placa Afixada ao PC (PAPC)<br />

O diagrama elétrico da placa PAPC, on<strong>de</strong> a qual é responsável por transmitir<br />

as informações entre o computador e o robô, está representada na Figura 45.<br />

Figura 45. Diagrama elétrico do circuito da placa afixada ao PC.<br />

O circuito projetado é composto principalmente por um módulo ZigBee e um<br />

CI MAX232. O CI MAX232 é um circuito eletrônico que converte sinais <strong>de</strong> uma porta


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 68<br />

serial <strong>para</strong> sinais a<strong>de</strong>quados <strong>para</strong> o uso em circuitos com microcontroladores, ou<br />

seja, a conversão <strong>para</strong> o tipo <strong>de</strong> sinal TTL (Transistor-Transistor Logic).<br />

O circuito ilustrado na Figura 46, montado seguindo o datasheet do<br />

componente, converte os níveis <strong>de</strong> tensão do padrão RS-232 <strong>para</strong> níveis<br />

apropriados à transmissão por rádiofrequência utilizando o circuito integrado<br />

MAX232. O componente 7805 é um regulador <strong>de</strong> tensão que recebe a tensão da<br />

bateria <strong>de</strong> 9 V e converte <strong>para</strong> 5 V que é o nível <strong>de</strong> tensão <strong>de</strong> entrada <strong>para</strong> o circuito<br />

em questão.<br />

Figura 46. Diagrama elétrico do circuito conversor (Datasheet MAX232, 2010).<br />

O protocolo RS-232 é um padrão <strong>de</strong> comunicação criado pela EIA (Electronic<br />

Industries Association) <strong>para</strong> a comunicação entre um DTE (terminal <strong>de</strong> dados) e um<br />

DCE (um comunicador <strong>de</strong> dados), sendo também conhecido como EIA-232.<br />

Os dados que provém da porta serial do computador po<strong>de</strong>m ser interpretados<br />

da seguinte forma: os pacotes geralmente são <strong>de</strong> 10 a 11 bits, on<strong>de</strong> 8 bits são <strong>de</strong><br />

informação, um bit <strong>de</strong> inicialização da comunicação (StartBit), um <strong>para</strong> i<strong>de</strong>ntificar a<br />

parida<strong>de</strong> e outro <strong>para</strong> encerrar (StopBit). A Figura 47 ilustra o esquema <strong>de</strong><br />

transmissão dos dados.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 69<br />

Figura 47. Dados na forma serial.<br />

A porta serial envia constantemente um nível lógico alto. Quando o nível<br />

lógico baixo é enviado pela primeira vez (StartBit), significa que uma comunicação<br />

será iniciada. Este é o sinal <strong>para</strong> que o clock, que sincroniza a comunicação,<br />

dispare e comece a contar. Em seguida os bits <strong>de</strong> informação são enviados<br />

seguidos do bit <strong>de</strong> parida<strong>de</strong>.<br />

O bit <strong>de</strong> parida<strong>de</strong> serve como uma verificação se a informação foi enviada<br />

corretamente. Se a quantida<strong>de</strong> <strong>de</strong> 1’s nos bits <strong>de</strong> informação for par, então o bit <strong>de</strong><br />

parida<strong>de</strong> <strong>de</strong>verá ser 0, caso o número <strong>de</strong> bits 1’s for ímpar e o bit <strong>de</strong> parida<strong>de</strong> for 0,<br />

logo é notificado que houve um erro na comunicação. E o StopBit finaliza a<br />

comunicação.<br />

3.2.9 Circuito da Placa Afixada ao Carro (PAC)<br />

O circuito representado na Figura 48, tem como principais componentes o<br />

XBee/ZigBee, um microcontrolador PIC16F877A e um circuito integrado que<br />

implementa uma ponte H.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 70<br />

Figura 48. Diagrama elétrico do circuito da placa afixada ao carro.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 71<br />

O módulo que controla o acionamento dos motores é composto por duas<br />

pontes H, as quais estão ligadas cada uma a um motor. A ponte H é um circuito<br />

eletrônico que permite que um motor CC gire tanto em um sentido quanto em outro.<br />

Estes circuitos são geralmente utilizados na robótica e estão disponíveis em circuitos<br />

prontos, como o L298N, que possui duas pontes H integradas no seu<br />

encapsulamento, ou po<strong>de</strong>m ser construídos por componentes discretos como os<br />

transistores.<br />

A ponte H ilustrada na Figura 49 é composta por 4 chaves, po<strong>de</strong>ndo elas<br />

serem mecânicas ou eletrônicas. Elas são posicionadas na forma da letra H, <strong>de</strong><br />

modo que cada uma é localizada em um extremo e o motor posicionado ao meio.<br />

Figura 49. Ponte H.<br />

O princípio <strong>de</strong> funcionamento da ponte H é mostrado na Figura 50. Para o<br />

motor funcionar <strong>de</strong>ve-se acionar um par <strong>de</strong> chaves diagonalmente opostos, fazendo,<br />

assim, com que a corrente flua <strong>de</strong> um pólo a outro atravessando o motor, fazendo-o<br />

girar. Para inverter o torque basta <strong>de</strong>sligar as chaves acionadas anteriormente e<br />

ligar o outro par <strong>de</strong> chaves diagonalmente opostos, fazendo a corrente fluir no<br />

sentido contrário.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 72<br />

Figura 50. Funcionamento da Ponte H.<br />

Para os motores <strong>para</strong>rem <strong>de</strong> forma eficiente, basta acionar as duas chaves<br />

superiores, ou inferiores, simultaneamente. Isso acontece pelo fato do motor ser um<br />

componente indutivo. Quando os terminais do motor são conectados no mesmo<br />

pólo, o motor é curto circuitado fazendo com que ele pare instantaneamente. Porém,<br />

se quando o motor estiver em funcionamento todas as chaves forem fechadas, o<br />

circuito será <strong>de</strong>sligado e o motor irá <strong>para</strong>r suavemente.<br />

Algumas precauções <strong>de</strong>vem ser tomadas ao usar a ponte H, pois caso só<br />

duas chaves do mesmo lado da ponte H forem fechadas, simultaneamente, isso faz<br />

com que o fluxo <strong>de</strong> corrente vá direto <strong>de</strong> um pólo a outro (positivo ao negativo),<br />

ocasionando assim um curto-circuito <strong>para</strong> a fonte <strong>de</strong> alimentação e <strong>para</strong> os<br />

componentes eletrônicos do circuito.<br />

O microcontrolador utilizado foi o PIC16F877A, o qual é responsável por<br />

receber um comando e acionar uma ação correspon<strong>de</strong>nte pré-programada em sua<br />

memória. Esse dispositivo já possui em sua arquitetura interna blocos específicos<br />

<strong>para</strong> a recepção e envio <strong>de</strong> dados seriais. A vantagem <strong>de</strong>ssa família <strong>de</strong> PICs é o<br />

fato <strong>de</strong>les possuírem um numero maior <strong>de</strong> instruções em código <strong>de</strong> máquina que é<br />

otimizada <strong>para</strong> po<strong>de</strong>r ser utilizada com compiladores da linguagem C. As principais<br />

rotinas implementadas foram as seguintes:


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 73<br />

� Interrupção da Serial: <strong>para</strong> que o microcontrolador atenda as<br />

requisições provenientes da comunicação serial é necessário habilitar<br />

esta interrupção, a qual é processada pelo trecho <strong>de</strong> código ilustrado<br />

na Figura 51.<br />

Figura 51. Rotina que habilita as interrupções.<br />

� A Figura 52 mostra a função isrSerial(), responsável pela captura <strong>de</strong><br />

cada caractere proveniente da comunicação serial que estará no<br />

registrador rxuart e inserir no vetor buffer_serial. Esse vetor, logo após<br />

ser totalmente preenchido, será enviado <strong>para</strong> a função<br />

validar_protocolo(). O trecho #locate rxuart = 0x1A correspon<strong>de</strong> ao<br />

en<strong>de</strong>reço da rxuart que será usado no <strong>de</strong>correr da execução do<br />

programa.<br />

Figura 52. Função <strong>para</strong> capturar as interrupções provindas da porta serial.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 74<br />

� Validar Protocolo: após ser recebida toda a informação que<br />

correspon<strong>de</strong> a uma ação que <strong>de</strong>verá ser executada pelo<br />

microcontrolador, é necessário analisar se os dados recebidos<br />

correspon<strong>de</strong>m às informações validas. Assim, a função<br />

validar_protocolo() (Figura 53) é responsável por essa análise e<br />

fragmentar o protocolo em valores que serão utilizados posteriormente.<br />

Figura 53. Função validar protocolo.<br />

� No inicio da validação a função irá analisar se o primeiro e o último<br />

caracteres são “#” e “;”, respectivamente, se sim ele continua a<br />

executar as outras tarefas, se não ele não ira aceitar aquela<br />

informação contida no vetor buffer_serial. Caso os valores <strong>para</strong><br />

i<strong>de</strong>ntificação do protocolo forem validados positivamente <strong>de</strong>ve-se<br />

extrair do vetor as informações que farão o microcontrolador tomar<br />

uma <strong>de</strong>cisão.<br />

� Escolha da Ação: após a validação do protocolo, os valores contidos<br />

nas variáveis direção e speed são utilizadas <strong>para</strong> <strong>de</strong>finir qual direção<br />

será tomada pelo robô móvel e com qual velocida<strong>de</strong>. A Figura 54<br />

mostra algumas das ações executadas, como ir <strong>para</strong> a frente e <strong>para</strong><br />

trás. A velocida<strong>de</strong> é obtida multiplicando-se o valor da variável speed<br />

por 341. Este valor foi obtido pelo fato do valor máximo do PWM ser


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 75<br />

1024. Assim, como o veículo possui apenas três velocida<strong>de</strong>s, o<br />

seguinte cálculo foi efetuado: 1024/3=341. Logo, a velocida<strong>de</strong> será<br />

<strong>de</strong>finida por speed*341, o que no máximo dará 1024, já que speed<br />

possui apenas três valores (1, 2 e 3).<br />

Figura 54. Definir ação.<br />

� A função encarregada <strong>de</strong> capturar o nível <strong>de</strong> tensão da bateria é<br />

ilustrada na Figura 55. Após habilitar o pino analógico, <strong>para</strong> receber<br />

a tensão do nível <strong>de</strong> bateria, <strong>de</strong>ve-se inserir um <strong>de</strong>lay (linha 118)<br />

<strong>para</strong> que o pino possa capturar a tensão corretamente. A tensão é<br />

lida com a função read_adc(). A variável “nível” recebe o valor da<br />

tensão capturada e logo em seguida é feita a conversão (linha 120)<br />

<strong>para</strong> digital. A conversão é feita dividindo o valor da tensão<br />

capturada por 255, pois a resolução ADC escolhida foi <strong>de</strong> 8 bits.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 76<br />

Figura 55. Função do Nível <strong>de</strong> Bateria.<br />

� A função encarregada <strong>de</strong> capturar o nível <strong>de</strong> tensão emitida pelos<br />

sensores e informar a distância <strong>de</strong> obstáculos é ilustrada na Figura<br />

56. Assim como na função <strong>de</strong> nível <strong>de</strong> bateria é preciso habilitar o<br />

pino analógico que receberá a tensão e esperar um tempo antes <strong>de</strong><br />

fazer a medição. A tensão é lida com a função read_adc() e<br />

transformada <strong>para</strong> digital. Na linha 104 a função que retorna o valor<br />

da distância é calculada. As funções <strong>para</strong> os <strong>de</strong>mais sensores<br />

seguem o mesmo raciocínio.<br />

Figura 56. Função do sensor <strong>de</strong> distância.<br />

� Após todos os cálculos prontos, a função protocolarEnviar()<br />

(Figura 57) insere todos os valores <strong>de</strong>ntro da variável buffer_enviar<br />

e envia.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 77<br />

Figura 57. Função protocolarEnviar().


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 78<br />

4 Resultados e Discussão<br />

Na etapa <strong>de</strong> confecção do protótipo <strong>de</strong> hardware houve a elaboração dos<br />

layouts elétricos <strong>de</strong> duas placas <strong>de</strong> circuito impresso, as quais foram confeccionadas<br />

no software Eagle (EAGLE, 2010). Elas foram adicionadas uma à estrutura do<br />

carrinho <strong>de</strong> controle remoto e a outra afixada à porta serial do computador. A função<br />

da primeira placa é receber comandos via rádio enviados pelo computador, o qual se<br />

utiliza da segunda placa <strong>para</strong> enviar os comandos <strong>para</strong> a placa que está afixada ao<br />

carrinho.<br />

Entre os dispositivos <strong>de</strong> rádio-frequência analisados verificou-se que o ZigBee<br />

era o mais a<strong>de</strong>quado <strong>para</strong> a implementação do projeto. Com a tecnologia ZigBee foi<br />

possível fazer uma encriptação dos dados enviados, impedindo, assim, que outros<br />

dispositivos não habilitados interceptassem as informações.<br />

A placa PAPC (Figura 58) tem como componentes principais o módulo XBee<br />

XB24-ZB e o CI MAX232. As funcionalida<strong>de</strong>s <strong>de</strong>sejáveis <strong>para</strong> a placa foram obtidas<br />

com sucesso. Outra implementação interessante seria a construção da mesma<br />

placa, porém com entrada USB, por ser mais cômodo e po<strong>de</strong>r conectar diretamente<br />

ao notebook sem a necessida<strong>de</strong> <strong>de</strong> um adaptador.<br />

Figura 58. Placa PAPC.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 79<br />

A placa que foi afixada ao carrinho (PAC, Figura 59) tem como componentes<br />

principais um XBee XB24-ZB e um PIC16F877A. O XBee é responsável por receber<br />

os dados enviados pelo transmissor e passar esses dados <strong>para</strong> o microcontrolador,<br />

o qual analisa os dados e executa a ação correspon<strong>de</strong>nte. Os resultados obtidos<br />

com os testes na PAC foram satisfatórios e não apresentaram diferenças<br />

significativas.<br />

Figura 59. Placa PAC.<br />

Entre as peculiarida<strong>de</strong>s da construção da placa PAC está a existência <strong>de</strong><br />

quatro reguladores <strong>de</strong> tensão 7805 que transformam a tensão <strong>de</strong> entrada em 5 V.<br />

Como este regulador suporta até 1 A, a inserção dos quatro reguladores impe<strong>de</strong> que<br />

a placa esquente muito, o que seria in<strong>de</strong>sejável.<br />

Os sensores <strong>de</strong> obstáculos utilizados po<strong>de</strong>m ter um tempo <strong>de</strong> resposta<br />

gran<strong>de</strong>, fazendo com que o resultado da distância não seja 100% confiável. Os<br />

obstáculos <strong>de</strong>tectados pelos sonares também po<strong>de</strong>m não ter uma medição 100%<br />

correta, como quando há a medição <strong>de</strong> uma distância gran<strong>de</strong> e logo em seguida há<br />

a medição <strong>de</strong> uma distância pequena, pois não há tempo hábil <strong>para</strong> a <strong>de</strong>tecção da<br />

mesma.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 80<br />

Os circuitos dos sensores <strong>de</strong> obstáculos ilustrados na Figura 60 foram postos<br />

em placas se<strong>para</strong>das (<strong>de</strong> mesmo tamanho) <strong>para</strong> melhor se a<strong>de</strong>quar à estrutura do<br />

carro.<br />

Figura 60. Sensores <strong>de</strong> obstáculo afixados ao chassi do carro.<br />

A Figura 61 ilustra a posição do sensor <strong>de</strong> velocida<strong>de</strong>, posicionado atrás da<br />

roda traseira esquerda.<br />

Figura 61. Sensor <strong>de</strong> velocida<strong>de</strong>.<br />

A localização <strong>de</strong> cada placa foi <strong>de</strong>vidamente estudada <strong>para</strong> que os feixes <strong>de</strong><br />

luz emitidos pelo sensor <strong>de</strong> uma placa não reflita e interfira na <strong>de</strong>tecção <strong>de</strong><br />

obstáculos da outra. Essa análise foi feita experimentalmente e confirmada. As<br />

placas foram afixadas ao chassi do carro usando cola quente. As placas com os<br />

sonares também foram construídas se<strong>para</strong>damente e afixadas ao chassi pelo<br />

mesmo processo. As Figuras 62 e 63 ilustram como as placas, dos sensores e<br />

sonar, estão afixadas.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 81<br />

(a, b, c, d, e).<br />

Figura 62. Sensores e Sonar afixados na parte dianteira do chassi do caro.<br />

Figura 63. Sensores e Sonar afixados ao chassi do caro.<br />

O sistema montado com os circuitos <strong>de</strong>senvolvidos é ilustrado na Figura 64<br />

(a) (b)


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 82<br />

(c) (d)<br />

(e)<br />

Figura 64. (a) Sensor traseiro-esquerdo e sonar traseiro, (b) sensor traseiro direito e sonar traseiro.<br />

(c) vista <strong>de</strong> frente do carro, (d) vista da PAC <strong>de</strong>ntro do carro e (e) vista lateral do carro.<br />

O programa <strong>de</strong>senvolvido na linguagem C++, responsável por interfacear a<br />

interação entre o sistema e o usuário, foi <strong>de</strong>senvolvido <strong>de</strong> forma satisfatória. Assim<br />

como as placas <strong>de</strong> circuito impresso, o programa <strong>de</strong> controle também foi testado<br />

diversas vezes <strong>para</strong> <strong>de</strong>tectar possíveis erros, a fim <strong>de</strong> atestar que todas as<br />

funcionalida<strong>de</strong>s implementadas estavam <strong>de</strong> acordo com o planejado.<br />

Entre as dificulda<strong>de</strong>s encontradas <strong>para</strong> a implementação do projeto po<strong>de</strong>-se<br />

<strong>de</strong>stacar o impasse em encontrar os componentes utilizados <strong>para</strong> montar as placas.<br />

Muitas vezes foi necessária a compra pela internet <strong>de</strong> dispositivos, implicando em<br />

atrasos.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 83<br />

5 Conclusão<br />

O projeto em questão teve como objetivo <strong>de</strong>senvolver um sistema <strong>de</strong><br />

telemetria <strong>para</strong> envio <strong>de</strong> comandos e recepção <strong>de</strong> informações <strong>de</strong> um robô móvel.<br />

Para isto, foram utilizados conhecimentos sobre Algoritmo e Programação,<br />

Eletrônica Digital, Laboratório <strong>de</strong> Eletrônica Digital, Circuitos Elétricos, Laboratório<br />

<strong>de</strong> Circuitos Elétricos, Eletrônica Analógica, Laboratório <strong>de</strong> Eletrônica Analógica e<br />

<strong>Sistema</strong>s Microcontrolados adquiridos durante a formação no curso <strong>de</strong> Engenharia<br />

da Computação.<br />

O sistema <strong>de</strong>senvolvido consegue enviar e receber informações com<br />

eficiência, apresentando uma interface gráfica com o usuário que possibilita emitir os<br />

comandos bem como visualizar as informações que são recebidas.<br />

O trabalho <strong>de</strong>senvolvido po<strong>de</strong> ser utilizado, entre outras aplicações, <strong>para</strong><br />

rondas <strong>de</strong> vigilância, contribuindo <strong>para</strong> a segurança do usuário vigilante que, por sua<br />

vez, estará afastado <strong>de</strong> regiões muitas vezes inóspitas.<br />

Além do mais, são diversas as situações em que são necessárias<br />

atualizações e reparos em sistemas que, por motivos <strong>de</strong> distância, não po<strong>de</strong>m ser<br />

feitos diretamente pelo homem, ou seja, é inviável o contato físico entre o<br />

equipamento e a pessoa responsável em fazer a manutenção. Dessa forma, é<br />

necessário o envio <strong>de</strong> comandos via rádio-frequência que po<strong>de</strong>m executar essas<br />

ativida<strong>de</strong>s <strong>de</strong> forma prática e eficiente.<br />

5.1 Trabalhos Futuros<br />

Po<strong>de</strong>m-se listar algumas sugestões <strong>para</strong> possíveis melhorias e/ou expansão<br />

do projeto implementado:<br />

� Adicionar outros sensores no carro, tais como temperatura e umida<strong>de</strong>;


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 84<br />

� Adaptar uma câmera <strong>de</strong> CCD (Charge-Coupled Device ou Dispositivo<br />

<strong>de</strong> Carga Afixada) ao carrinho <strong>para</strong> que o operador veja o ambiente em<br />

que o carrinho está navegando;<br />

� Usar o XBee no modo API <strong>para</strong> o envio <strong>de</strong> informações em frames,<br />

possibilitando assim: transmitir dados <strong>para</strong> múltiplos <strong>de</strong>stinos sem ser<br />

necessário entrar no modo comando; os dispositivos receberem<br />

estados <strong>de</strong> sucesso ou falha <strong>para</strong> cada pacote transmitido; i<strong>de</strong>ntificar o<br />

en<strong>de</strong>reço <strong>de</strong> on<strong>de</strong> partiu cada pacote.<br />

� Implementar um banco <strong>de</strong> dados <strong>para</strong> salvar os dados obtidos;<br />

� Implementar um servidor web <strong>para</strong> fazer o controle via internet;<br />

� Plotar gráficos com os valores do nível <strong>de</strong> bateria <strong>para</strong> análise e melhor<br />

gerenciamento <strong>de</strong> energia.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 85<br />

6 Referências<br />

ABECASIS, D, <strong>Telemetria</strong>: Conceitos e Aplicações. Workshop <strong>Telemetria</strong>, Centro<br />

<strong>de</strong> Ciências do Mar-Universida<strong>de</strong> do Alga, 2010.<br />

BEKEY, George A. Autonomous Robots. From Biological Inspiration to<br />

Implementation and Control. MIT Press, 2005.<br />

BRAGA, Newton. <strong>Telemetria</strong> médica com o CMX990. Disponível na internet em:<br />

. Acesso em 24 <strong>de</strong><br />

Nov. <strong>de</strong> 2010.<br />

BRANCO, Agatha. <strong>Telemetria</strong>. Disponível na internet em:<br />

. Acesso<br />

em 24 <strong>de</strong> Nov. <strong>de</strong> 2010.<br />

BROOKS, R. A Robust Layered Control System for a Mobile Robot. IEEE Journal<br />

of Robotics and Automation 2,1 (Mar. 1986), 14-23.<br />

Eagle, CadSoft. Disponível na internet em: <br />

Acesso em: 27 Nov. 2010.<br />

DIAS, Osmar: <strong>Telemetria</strong> e sensoriamento remoto. Editora Copel, 1992.<br />

ENALTA. Informação chega antes da cana na indústria. Disponível na<br />

internet em: .<br />

Acesso em 24 <strong>de</strong> Nov. <strong>de</strong> 2010.<br />

GUERRA, S.C.S. <strong>Sistema</strong> <strong>de</strong> Navegação <strong>para</strong> Veículo Autônomo Utilizando<br />

Lógica Difusa. 128 p. Dissertação (Mestrado). Escola <strong>de</strong> Engenharia <strong>de</strong> São<br />

Carlos, Universida<strong>de</strong> <strong>de</strong> São Paulo, São Carlos, 2009.<br />

IEEE 802.15.4 Standard Report: Wireless Medium Access Control (MAC) and<br />

Physical Layer (PHY) Specifications for Low-Rate Wireless Personal Area<br />

Networks (LR-WPANs). The Institute of Electrical na Electronic Engineers, Inc.<br />

New York, EUA, 2003.<br />

ITU, Disponível na internet em: Acesso<br />

em 05 Jul. 2011<br />

ROSS, Julio. Curso Comunicação via Rádio. Disponível na internet em:<br />

Acesso em: 27 Nov. 2010.<br />

KIM, M.S, Shin J. H, Lee J.J. ;Design of a Robust Adaptive Controller for a<br />

Mobile Robot; Department of Computer Science and Electrical Engineering,<br />

Department of Mechano- Informatics, KAIST, University of Tokyo, 2000.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 86<br />

LEMONICK, Michel. Dante Tours the Inferno. Time Magazine – Time<br />

Domestic/Science. Vol.144, No. 7. August 15, 1994.<br />

LV-MaxSonar®-EZ1High Performance Sonar Range Fin<strong>de</strong>r Disponível na<br />

internet em : Acesso em: 20 Nov. 2010.<br />

MARCH, J. Navegação <strong>de</strong> <strong>Robôs</strong> <strong>Móveis</strong> Autônomos. Estudo e Implementação<br />

<strong>de</strong> Abordagens. Dissertação (Mestrado), UFSC – Universida<strong>de</strong> <strong>de</strong> Santa<br />

Catarina, Florianópolis, 2001.<br />

MARIANO, Luiz. A <strong>Telemetria</strong> na Mo<strong>de</strong>rna Fórmula 1. Disponível na internet em:<br />

<br />

Acesso em: 01 Dez. 2010<br />

MAX232, Disponível na internet em:<br />

<br />

Acesso em: 20 Nov. 2010.<br />

MAXSTREAM, XBee TM/XBee-PROTM OEM RF Modules. Manual dos produtos.<br />

Lindon, USA, 2006. Disponível na internet em<br />

.<br />

Acesso em Mai 2011.<br />

Microchip, Microchip PIC16F87xA Data Sheet. Disponível na internet em:<br />

Acesso em: 15 Nov. 2010.<br />

MIYADAIRA, A. N. Microcontroladores PIC18 – Aprenda e Programe em<br />

Linguagem C.São Paulo: Érica, 2009.<br />

MOHER, Michael; HAYKIN, Simon. <strong>Sistema</strong>s <strong>de</strong> Comunicação. São Paulo: 5ª<br />

Edição, Bookman, 2011.<br />

NETO, D. F, Protótipo <strong>de</strong> uma plataforma Robótica Móvel Seguidora <strong>de</strong><br />

Trajetória. Universida<strong>de</strong> Fe<strong>de</strong>ral do Pará, Belém, 2009.<br />

PATSKO, Luís Fernando. Tutorial: Montagem da Ponte H, 22 fev. 2006.<br />

PIERI, Edson R., Curso <strong>de</strong> Robótica Móvel, UFSC - Universida<strong>de</strong> Fe<strong>de</strong>ral <strong>de</strong> Santa<br />

Catarina, Florianópolis, 2002.<br />

PIOVESAN, F.C, <strong>Telemetria</strong> Aplicada na Mecanização Agrícola Utilizando o<br />

Datalogger CR 1000. Universida<strong>de</strong> Fe<strong>de</strong>ral <strong>de</strong> Santa Maria, Santa Maria – RS,<br />

2008.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 87<br />

ROSÁRIO, J. M. Microcontroladores Família PIC – Tutorial. Curso <strong>de</strong><br />

Mecatrônica. UNICAMP, 2002<br />

SANTANA, Lucas Vago. O Uso da Internet e da Comunicação Sem Fio Via<br />

ZigBee em <strong>Sistema</strong>s Embutidos. 2008. 89f. Monografia <strong>de</strong> Graduação em<br />

Engenharia <strong>de</strong> Controle e Automação – Universida<strong>de</strong> Fe<strong>de</strong>ral <strong>de</strong> Ouro Preto -<br />

UFOP, Ouro Pretro.<br />

SANTOS, Sérgio Torres dos. Re<strong>de</strong>s <strong>de</strong> Sensores Sem Fio em Monitoramento e<br />

Controle. 2007. 87f. Dissertação <strong>de</strong> Mestrado em Engenharia Elétrica –<br />

Universida<strong>de</strong> Fe<strong>de</strong>ral do Rio <strong>de</strong> Janeiro, Rio <strong>de</strong> Janeiro.<br />

SILVA, André Teixeira. Por que ZigBee? Disponível na internet em:<br />

Acesso em<br />

Mai 2011.<br />

SOARES, Antônio J. Martins, COSTA, Franklin. Antenas e Propagacão.<br />

Universida<strong>de</strong> <strong>de</strong> Brasilia, Faculda<strong>de</strong> <strong>de</strong> Tecnologia, Departamento <strong>de</strong><br />

Engenharia Elétrica, 2003.<br />

SOLBET. Tutoriais sobre programação <strong>de</strong> microcontroladores: consi<strong>de</strong>rações<br />

básicas sobre o PIC16F877. Disponível na internet em: <<br />

http://www.solbet.com.br> Acesso em Jun 2011.<br />

STAVARENGO, Alex A.; <strong>Telemetria</strong> <strong>de</strong> Dados e Imagens <strong>para</strong> Plataforma<br />

Autônoma <strong>para</strong> Coleta <strong>de</strong> Dados Hidrológicos; São Carlos, 2006.<br />

STONE, H. W. Mars Pathfin<strong>de</strong>r Microver: A low-cost, low-power Spacecraft.<br />

Proceeding of the 1996 AIAA. Forum on advanced <strong>de</strong>velopments in Space<br />

Robotics. Madison, WI. August 1996.<br />

TACACENCO, J.P, Ramos, R.N. Medidor <strong>de</strong> distância por ultra-som: UCS-sonar.<br />

Universida<strong>de</strong> <strong>de</strong> Caxias do Sul, Caxias do Sul, 2003.<br />

TEIXEIRA, Luis Marcelo. Desenvolvimento <strong>de</strong> uma Aplicação com o Protocolo<br />

ZigBee aplicado em Instrumentação <strong>de</strong> Ensaio <strong>de</strong> Vôo. 2006. 162f. Tese <strong>de</strong><br />

Mestrado em Engenharia Eletrônica e Computação – Instituto Tecnológico <strong>de</strong><br />

Aeronáutica, São José dos Campos.<br />

VIEIRA, Pedro. Propagação: Canal Rádio e Desvanecimento. Disponível na<br />

internet em:<br />

Acesso em Jul 2011.<br />

VISSOTTO JR., D. Transmissão <strong>de</strong> dados via telemetria: uma opção <strong>de</strong><br />

comunicação remota, Universida<strong>de</strong> Fe<strong>de</strong>ral do Paraná, Curitiba, 2004.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 88<br />

XBee® ZB ZigBee® RF Modules, Disponível na internet em: < http://www.digi.com><br />

Acesso em: 10 Jan. 2011.<br />

ZIGBEE ALLIANCE. ZigBee Specification Version R17. Standard Specification,<br />

San Ramon, 2008. Disponível na internet em: . Acesso<br />

em Mai 2011.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 89<br />

7 Anexos<br />

Tabela 8. Funções <strong>de</strong> cada pino do PIC16F877A.<br />

Pino Tipo Nome Descrição<br />

1 ST<br />

-<br />

2 TTL<br />

Analógico<br />

3 TTL<br />

Analógico<br />

4 TTL<br />

Analógico<br />

Analógico<br />

Analógico<br />

5 TTL<br />

Analógico<br />

Analógico<br />

6 ST<br />

ST<br />

-<br />

7 TTL<br />

Analógico<br />

TTL<br />

-<br />

8 TTL<br />

Analógico<br />

TTL<br />

9 TTL<br />

Analógico<br />

TTL<br />

10 TTL<br />

Analógico<br />

TTL<br />

Vpp<br />

RA0<br />

AN0<br />

RA1<br />

AN1<br />

RA2<br />

AN2<br />

Vref-<br />

CVref<br />

RA3<br />

AN3<br />

Vref+<br />

RA4<br />

T0CKI<br />

C1OUT<br />

RA5<br />

AN4<br />

C2OUT<br />

RE0<br />

AN5<br />

RE1<br />

AN6<br />

RE2<br />

AN7<br />

Master Clear Reset<br />

Entrada <strong>de</strong> tensão <strong>de</strong> programação (12V)<br />

Entrada analógica utilizada <strong>para</strong> capturar a tensão da bateria, a<br />

fim <strong>de</strong> monitorar a quantida<strong>de</strong> <strong>de</strong> carga.<br />

Entrada analógica utilizada pra capturar a tensão emitida pelo<br />

sonar posicionado na parte dianteira do carro, a fim <strong>de</strong> informar<br />

a distância <strong>de</strong> possíveis obstáculos.<br />

Entrada analógica utilizada pra capturar a tensão emitida pelo<br />

sonar posicionado na parte traseira do carro, a fim <strong>de</strong> informar a<br />

distância <strong>de</strong> possíveis obstáculos.<br />

Entrada analógica utilizada pra capturar a tensão emitida pelo<br />

sensor posicionado na parte dianteira esquerda do carro, a fim<br />

<strong>de</strong> informar a distância <strong>de</strong> possíveis obstáculos.<br />

Não utilizada.<br />

Entrada analógica utilizada pra capturar a tensão emitida pelo<br />

sensor posicionado na parte dianteira direita do carro, a fim <strong>de</strong><br />

informar a distância <strong>de</strong> possíveis obstáculos.<br />

Entrada analógica utilizada pra capturar a tensão emitida pelo<br />

sensor posicionado na parte traseira esquerda do carro, a fim<br />

<strong>de</strong> informar a distância <strong>de</strong> possíveis obstáculos.<br />

Entrada analógica utilizada pra capturar a tensão emitida pelo<br />

sensor posicionado na parte traseira direita do carro, a fim <strong>de</strong><br />

informar a distância <strong>de</strong> possíveis obstáculos.<br />

Não utilizada.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 90<br />

11 - VDD Alimentação Positiva (+5V)<br />

12 - VSS Terra (GND)<br />

13 Analógico<br />

Analógico<br />

14 Analógico<br />

Analógico<br />

15 ST<br />

-<br />

ST<br />

16 ST<br />

-<br />

ST<br />

17 ST<br />

ST<br />

18 ST<br />

ST<br />

ST<br />

19 ST<br />

TTL<br />

20 ST<br />

TTL<br />

21 ST<br />

TTL<br />

22 ST<br />

TTL<br />

23 ST<br />

ST<br />

ST<br />

24 ST<br />

ST<br />

25 ST<br />

-<br />

ST<br />

OSC1<br />

CLK1<br />

OSC2<br />

CLK0<br />

RC0<br />

T1OSO<br />

T1CKI<br />

RC1<br />

T1OSI<br />

CCP2<br />

RC2<br />

CCP1<br />

RC3<br />

SCK<br />

SCL<br />

RD0<br />

PSP0<br />

RD1<br />

PSP1<br />

RD2<br />

PSP2<br />

RD3<br />

PSP3<br />

RC4<br />

SDI<br />

SDA<br />

RC5<br />

SDO<br />

RC6<br />

TX<br />

CK<br />

Cristal oscilador<br />

Entrada <strong>para</strong> clock Externo<br />

Cristal oscilador<br />

Saída <strong>de</strong> clock<br />

Não utilizada.<br />

Utilizada <strong>para</strong> envio do sinal PWM ao circuito controlador dos<br />

motores.<br />

Utilizada <strong>para</strong> <strong>de</strong>tectar as variações dos sinais no sensor <strong>de</strong><br />

velocida<strong>de</strong>.<br />

Utilizado <strong>para</strong> enviar o sinal <strong>de</strong> buzina.<br />

Utilizado <strong>para</strong> controlar o sentido <strong>de</strong> rotação dos motores. É<br />

conectado ao pino input 1 do CI L298N.<br />

Utilizado <strong>para</strong> controlar o sentido <strong>de</strong> rotação dos motores. É<br />

conectado ao pino input 2 do CI L298N.<br />

Utilizado <strong>para</strong> controlar o sentido <strong>de</strong> rotação dos motores. É<br />

conectado ao pino input 3 do CI L298N.<br />

Utilizado <strong>para</strong> controlar o sentido <strong>de</strong> rotação dos motores. É<br />

conectado ao pino input 4 do CI L298N.<br />

Utilizado <strong>para</strong> acen<strong>de</strong>r um LED, a fim <strong>de</strong> informar que o<br />

programa esta sendo executado no microcontrolador.<br />

Utilizado <strong>para</strong> enviar o sinal do farol.<br />

Transmissão Assíncrona EUSART. É conectado ao pino RX do<br />

transmissor RF <strong>para</strong> envio dos dados.


TCC – <strong>Sistema</strong> <strong>de</strong> <strong>Telemetria</strong> <strong>para</strong> <strong>Robôs</strong> <strong>Móveis</strong> 91<br />

26 ST<br />

ST<br />

ST<br />

27 ST<br />

TTL<br />

28 ST<br />

TTL<br />

29 ST<br />

TTL<br />

30 ST<br />

TTL<br />

RC7<br />

RX<br />

DT<br />

RD4<br />

PSP4<br />

RD5<br />

PSP5<br />

RD6<br />

PSP6<br />

RD7<br />

PSP7<br />

Recepção Assíncrona EUSART. É conectado ao pino TX do<br />

transmissor RF <strong>para</strong> o recebimento dos dados.<br />

Utilizada <strong>para</strong> configurar o Xbee que será conectado ao<br />

computador.<br />

Utilizada <strong>para</strong> configurar o Xbee que será conectado ao carro.<br />

Não utilizada.<br />

Não utilizada.<br />

31 - VSS Terra (GND)<br />

32 - VDD Alimentação positiva (+5V)<br />

33 TTL<br />

ST<br />

RB0<br />

INT<br />

Não utilizada.<br />

34 TTL RB1 Não utilizada.<br />

35 TTL RB2 Não utilizada.<br />

36 TTL<br />

TTL<br />

RB3<br />

PGM<br />

Não utilizada.<br />

37 TTL RB4 Não utilizada.<br />

38 TTL RB5 Não utilizada.<br />

39 TTL<br />

ST<br />

40 TTL<br />

ST<br />

RB6<br />

PGC<br />

RB7<br />

PGD<br />

Não utilizada.<br />

Não utilizada.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!