Anda di halaman 1dari 74

UNIVERSIDADE DE PASSO FUNDO

FACULDADE DE ENGENHARIA E ARQUITETURA ENGENHARIA ELTRICA

SISTEMA DE TELEMETRIA AUTOMOTIVA PARA BAJA SAE UPF

Disciplina: Projeto de Graduao Acadmico: Kristofer Becker Kochhann Professor: Carlos Allan Caballero Petersen

Passo Fundo, julho de 2009.

Kristofer Becker Kochhann

Sistema de Telemetria Automotiva para Baja SAE UPF

Trabalho de concluso apresentado ao curso de Engenharia Eltrica, da Faculdade de Engenharia e Arquitetura, da Universidade de Passo Fundo, como requisito para a obteno do ttulo de Engenheiro Eletricista, sob orientao do Professor Dr. Carlos Allan Caballero Petersen.

Passo Fundo 2009

Kristofer Becker Kochhann

Sistema de Telemetria Automotiva para Baja SAE UPF

Banca Examinadora:

Professor Dr. Carlos Allan Caballero Petersen UPF Orientador Professor MSc. Adriano Luiz Toazza UPF Examinador Professor Dr. Mikhail Polonski UPF - Examinador

Passo Fundo 2009

Dedico a realizao deste projeto a meus pais, Rainoldo e Marga, por me darem condies de realizar um curso de nvel superior, assim como seu apoio e compreenso durante esses ltimos cinco anos e meio em especial. Dedico tambm ao professor Carlos A. Cabellero P., no s pelos ensinamentos durante todo o curso, mas tambm por acreditar neste projeto.

Agradecimentos

Agradeo a todos que de uma maneira ou outra contriburam para minha formao acadmica e humana. Aos familiares e amigos, pelo apoio e compreenso, por terem me incentivado e me ajudado nos momentos mais difceis. Aos professores que me transmitiram conhecimentos tericos e prticos para minha formao acadmica. Ao professor Carlos, orientador e colaborador deste trabalho por ter acreditado na minha capacidade. A meus colegas da Elomed pelo apoio e incentivo, em especial aos amigos Diego A. Silveira, Alisson Ianiski, Tiago Ianiski, Lus Eduardo Spalding, Cassiano Groth, Eduardo Tende, Cristiano Gradaschi, Cristiano Bouvi, Ismael Zanetti e Adenlson Risi. Um agradecimento especial aos colegas Cristian Reginatto, Helder Marcon, Thales Marafon e Marcelo Witzgall, com quem compartilhei boa parte desta caminhada, entre tantos outros com quem tive o privilgio de conviver neste perodo.

RESUMO
Todo esporte automotor caracterizado pelo constante desenvolvimento, sendo este visando desempenho ou durabilidade. Como em qualquer sistema, em um automotor necessrio ter informao sobre as deficincias existentes no projeto, de modo a melhorlo. Partindo desse princpio, muitas equipes de diferentes categorias se utilizam de sensores eltricos, como sensores de temperatura, presso, fora gravitacional, carga, entre outros. O presente projeto consiste na aquisio de dados atravs de determinados sensores e o envio destes dados para a equipe de box analis-los. Para melhor avaliao das condies do carro Baja SAE, no qual deve ser instalado o sistema. As medies e a transmisso devem ocorrer em espao de tempo muito pequeno, de modo a caracterizar este sistema de telemetria como online, ou em tempo real. Partindo da condio do carro no ter velocmetro e conta-giros, essas informaes bsicas foram adicionadas. Tambm foi implementada medio de fora-G em trs eixos, temperatura do motor e curso de suspenso. A parte de comunicao feita atravs de mdulos RF, padro XBee-PRO/IEEE 802.15.4 similar ao ZigBee. Para interface entre sensores e a transmisso dados, alm da adequao destes, utilizado a placa de desenvolvimento Arduino Duemilanove, que conta com microprocessador ATmega168 como principal componente.

Palavras chaves: telemetria, Baja SAE, Arduino Duemilanove, sensores, comunicao RF, XBee/ZigBee, temperatura, suspenso, fora G. Consideraes importantes no item 2.1.

LISTA DE FIGURAS

FIGURA 1.1 - ENGENHEIROS ANALISANDO INFORMAES DO CARRO. .............................................................. 18 FIGURA 1.2 - ESPECTRO DE FREQNCIA DEMONSTRANDO 16 CANAIS SELECIONVEIS.................................... 19 FIGURA 1.3 - ZIGBEE, MESH NETWORKING ....................................................................................................... 23 FIGURA 1.4 - EXEMPLO DE COMANDO AT. ....................................................................................................... 24 FIGURA 1.5 - COMUNICAO PONTO A MULTIPONTO........................................................................................ 25 FIGURA 1.6 - CONFIGURAO PONTO A PONTO ................................................................................................. 25 FIGURA 1.7 - ARDUINO DUEMILANOVE. ........................................................................................................... 27 FIGURA 1.8 - BAJA SAE - UPF ......................................................................................................................... 29 FIGURA 2.1 - DIAGRAMA DE BLOCOS DO SISTEMA DE TELEMETRIA. ................................................................. 31 FIGURA 2.2 FUNCIONAMENTO DOS SENSORES LVDT . .................................................................................. 33 FIGURA 2.3 CIRCUITO DO ACELERMETRO TRI-AXIAL. .................................................................................. 35 FIGURA 2.4 - CONFIGURAO DE SENSOR CENTGRADO BSICO, LM35........................................................... 36 FIGURA 2.5 - REPRESENTAO DA CHAVE HALL. .............................................................................................. 37 FIGURA 2.6 - CIRCUITO PARA ADEQUAR O SINAL AO ARDUINO. ....................................................................... 38 FIGURA 2.7 - LIGAO ENTRE ARDUINO E XBEE ............................................................................................. 41 FIGURA 2.8 LIGAES ENTRE ARDUINO E OUTROS ELEMENTOS DO SISTEMA................................................. 42 FIGURA 2.9 FLUXOGRAMA SIMPLIFICADO DO FIRMWARE. .............................................................................. 44 FIGURA 2.10 - DSSS E RUDO. .......................................................................................................................... 46 FIGURA 2.11 FONTE DE ALIMENTAO.......................................................................................................... 49 FIGURA 2.12 FLUXOGRAMA DAS VERIFICAES DE VELOCIDADE. ................................................................ 59 FIGURA 2.13 FLUXOGRAMA DAS VERIFICAES REFERENTES A RPM............................................................. 60 FIGURA 2.14 - PLACA PARA CONEXO ENTRE XBEE-PC E NOTEBOOK. ............................................................. 61 FIGURA 2.15 - INFORMAO CON USBEE ...................................................................................................... 61

LISTA DE TABELAS

TABELA 1.1 - CARACTERSTICAS DOS MDULOS XBEE E XBEE-PRO. ..................................20 TABELA 1.2 - COMUNICAO WIRELESS. ..............................................................................21 TABELA 1.3 CAPACIDADE DE ARMAZENAMENTO ATMEGA................................................28 TABELA 2.1 - CONFIGURAES XBEE-ARDUINO. .................................................................48 TABELA 2.2 - CONFIGURAES XBEE-PC. ...........................................................................48

LISTA DE ABREVIATURAS
Ohm;

C graus Celsius; A Ampre; A/D analgico/digital, conversor; AES padro de criptografia avanado; AMPOP Amplificador Operacional; AREF tenso analgica de referncia; AVR arquitetura modificada da Harvard, 8 bits RISC; Baja SAE competio organizada pela Sociedade de Engenheiros de Mobilidade; bit dgito binrio; BPSK chaveamento binrio por mudana de fase, tcnica de modulao; byte conjunto de 8 bits; C/C++ - linguagens de programao, alto nvel; CI Circuito Integrado; COM interface de comunicao com o computador; CSMA-CA tcnica anti-rudo IEEE 802.15.4; DC Tenso Contnua; dBmW decibel referido a miliwatt; DSSS seqncia direta de espectro espalhado, tcnica de modulao; EEPROM memria programvel/apagvel eletricamente somente de leitura; FIA Federao Internacional de Automobilismo; Flash memria computacional no-voltil, escrita e apagada eletricamente. Fora G fora gravitacional, acelerao; GHz giga Hertz, bilho de Hertz; GND terra, referencial; GPS sistema de posicionamento global; GTS garantir espao de tempo; Hertz freqncia, ciclos por segundo; 9

I/O entrada/sada; IC barramento multi mestre serial, desenvolvido pela Philips; ISM industrial, cientifica, mdica; IEEE Instituto de Engenheiros Eletricistas e Eletrnicos; kilo mil; kbps kilo bit por segundo; kg kilograma; LAN Local Acces Network, rede de trabalho com acesso local; LED diodo emissor de luz; LVDT - linear variable differential transformer, sensor de deslocamento linear; m metro; MAC Controle de acesso mdio; MAN Metropolitan Access Network, rede de trabalho de acesso metropolitano; MIP milhes de instrues por segundo; F nano farad (1E-9); O-QPSK chaveamento em quadratura por mudana de fase com offset; PAN rede de trabalho de rea pessoal; PHY physical layer specifications, especificaes da camada fsica; PWM Modulao por Largura de Pulso; RAM memria de acesso aleatrio; RF radiofreqncia; RPM rotao por minuto; RS232 padro para comunicao serial entre um terminal e um comunicador; Rx recepo, receptor; SNR relao sinal/rudo; SPI comunicao serial sncrona, desenvolvida pela Motorola; T/C temporizador/contador; TWI Interface de 2 fios, IC genrica; Tx transmisso, transmissor; USART Transmissor/Receptor universal, sncrono e assncrono; USB barramento serial universal; VBE tenso entre base e emissor de um BJT; VCC tenso DC positiva de alimentao; W Watt; 10

SUMRIO
INTRODUO ...................................................................................................................13 1. Fundamentao Terica...................................................................................................14 1.1. Telemetria na Histria ..............................................................................................14 1.2. Telemetria em diferentes situaes...........................................................................14 1.2.1. Agricultura .........................................................................................................15 1.2.2. Gerenciamento de gua.....................................................................................15 1.2.3. Sistemas de Defesa, Espaciais e de Explorao de Recursos ............................15 1.2.4. Medicina ............................................................................................................16 1.2.5. Estudo e controle da vida selvagem...................................................................16 1.2.6. Telemetria em Competies Automobilsticas ..................................................16 1.2.6.1. Formula1 equipe AT&T WilliamsF1 .........................................................17 1.3. Telemetria com cabos ...............................................................................................18 1.4. Mdulo XBee............................................................................................................19 1.4.1. Padro IEEE 802.15.4........................................................................................20 1.4.2. ZigBee................................................................................................................22 1.4.3. Comandos AT ....................................................................................................24 1.5. Placa Arduino Duemilanove .....................................................................................26 1.5.1. Microcontrolador ...................................................................................................28 1.6. Baja SAE...................................................................................................................29 2. Sistema Desenvolvido......................................................................................................31 2.1. Sensores ....................................................................................................................32 2.1.1. Curso de Suspenso ...........................................................................................33 2.1.2. Fora G ..............................................................................................................34 2.1.3. Temperatura do Motor .......................................................................................36 2.1.4. Velocidade .........................................................................................................37 2.1.5. Freqncia do motor - rpm ................................................................................38 2.2. Arduino Duemilanove...............................................................................................39 2.2.1. Sensores .............................................................................................................39 2.2.1.1. Nvel Analgico de Tenso.........................................................................39 2.2.1.2. Contagem de Pulsos....................................................................................40 2.2.2. Interface com XBee ...........................................................................................41 2.2.3 Funo Geral.......................................................................................................42 2.2.4 Firmware ............................................................................................................43 2.3. XBee - Canal.............................................................................................................45 2.3.1. Comunicao entre XBees ...............................................................................45 2.3.1.1. Imunidade a Rudo......................................................................................45 2.3.1.2. Imunidade a Interferncia ...........................................................................46 2.3.1.3. Baixo Consumo...........................................................................................47 2.3.1.4. Potncia de Transmisso e Sensibilidade de Recepo ..............................48 2.3.2. Comandos AT, configuraes............................................................................48 2.4. Fonte de Alimentao ...............................................................................................49 2.5. Intervalos de Tempo, Freqncias e Taxas...............................................................50 11

2.5.1. Converso A/D ..................................................................................................51 2.5.2. Leitura por Pulsos ..............................................................................................51 2.5.2.1. Rotaes do Motor......................................................................................52 2.5.2.2. Velocidade ..................................................................................................53 2.5.3. Envio dos Dados para XBee-Arduino ...............................................................53 2.5.4. Envio dos Dados do XBee-Arduino para o XBee-PC .......................................54 2.5.5. Envio dos Dados do XBee para PC ...................................................................54 2.5.6. Atrasos ...............................................................................................................54 2.5.6.1 Perodo de Um Ciclo de Transmisso..........................................................55 2.5.6.2 Delay geral do Ciclo de Transmisso ..........................................................56 2.6. Firmware ..................................................................................................................57 2.6.1. Velocidade .........................................................................................................57 2.6.1. RPM ...................................................................................................................59 2.7. Computador ..............................................................................................................60 2.7.1. Conexo XBee - PC...........................................................................................60 2.7.2. Software .............................................................................................................62 CONSIDERAES FINAIS ..............................................................................................65 REFERNCIAS BIBLIOGRFICAS ................................................................................66 ANEXO A Esquema eltrico do Arduino Duemilanove ..................................................68 ANEXO B Firmware utilizado no Arduino Duemilanove ...............................................69 ANEXO C Teste A/D do Arduino ....................................................................................72 ANEXO D Teste Interrupo Externa do Arduino...........................................................73 ANEXO E Teste do Modo Captura do Arduino...............................................................74

12

INTRODUO

Sistema de telemetria pode ser considerado um Sistema de Aquisio de Dados (SAD), no qual os dados so enviados a um local remoto, para serem vistos/analisados a distncia. So utilizados nas mais diversas situaes, desde monitoramento de temperatura nas proximidades de um vulco, at nvel de oxignio em uma estao espacial. No presente caso, uma sub-rea que por si s poderia ser considerada uma cincia, a telemetria automotiva. Estando presente na rea industrial, porm, o destaque fica para as competies. Presente em praticamente todas as categorias automobilsticas, s no sendo utilizado em categorias onde no representam vantagens, ou tendo alto custo/benefcio. Nas categorias de alto nvel, todas as equipes utilizam algum tipo de sistema de telemetria, de modo geral complexos, com alto nmero de sensores, de alta preciso e qualidade; e em tempo real. Os principais benefcios decorrem de poder prever defeitos em peas e equipamentos, tanto na fase de projeto quanto no decorrer de corridas. Alm disso, saber as condies sob qual determinado componente est atuando pode ser crucial. Por exemplo: os pneus de um Formula1 tm melhor rendimento quando sua temperatura est entre 80 e 110C. Tendo esse conhecimento, desenvolveu-se um sistema de telemetria para o automvel Baja SAE da UPF, equipe Mas Baja Tch!, utilizado em competies universitrias em todo o pas. Para realizao deste projeto, foi utilizada a placa microprocessada Arduino, com objetivo de adquirir mais conhecimento a respeito de seu funcionamento.

13

1. Fundamentao Terica

1.1. Telemetria na Histria

Telemetria definida como um processo de comunicao altamente automatizado, no qual medies so feitas e coletadas em um ponto remoto ou inacessvel e ento transmitidas a um receptor para monitoramento. [1] O primeiro sistema de telemetria no funcionava de modo contnuo, sendo usado para monitorar distribuio de energia eltrica. No primeiro sistema desse tipo, instalado em Chicago em 1912, linhas telefnicas eram usadas para transmitir dados referentes operao de usinas geradoras de energia eltrica a um escritrio central. Desde ento, telemetria se espalhou para outros campos, cada qual resultando em melhorias e modificaes para se adequar a seu propsito. [1] Considerando que telemetria um termo usado para descrever um processo generalizado que pode envolver diferentes tecnologias, vrios inventores podem ser citados em seu complexo desenvolvimento. [1] Na rea aeroespacial, em 1930, teve incio com a rdio sonda, um aparelho que media automaticamente temperatura, presso baromtrica e umidade de um balo no espao e enviava os dados para a Terra usando um sinal de rdio. Para foguetes e satlites, comeou em 1957, com o lanamento do satlite Sovitico, Sputnik. O desenvolvimento tecnolgico da telemetria aeroespacial chegou indstria, em diferentes operaes; i.e. testando motores de combusto interna, monitorando turbinas a vapor em operao ou esteiras transportadoras em fornos industriais. [1] Em 1960, o princpio pergunta-resposta foi desenvolvido. Sendo este, um processo altamente automatizado no qual o transmissor, no local das medies, s transmite os dados aps receber um sinal. Este princpio utilizado hoje em inmeras aplicaes. [1] 1.2. Telemetria em diferentes situaes

Neste sub-item sero abordadas, de forma breve, algumas das diferentes aplicaes em que utilizado telemetria. 14

1.2.1. Agricultura

A maioria das atividades relacionadas ao cultivo sadio de agro produtos est ligada disponibilidade de gua. Assim sendo, estaes metereolgicas sem fio tm grande importncia em irrigao de preciso, assim como no papel de previso de doenas, possibilitando que o agricultor no desperdice gua ou defensivos agrcolas. [2] No necessria transmisso de dados em tempo real, uma vez que as mudanas, ainda que importantes, levam tempo para acontecer. Intervalo de 15 minutos entre as medies fornece dados suficientes para as decises. Sensores utilizados: temperatura do ar, umidade relativa, molhamento solar, radiao solar, velocidade do vento e umidade do solo.

1.2.2. Gerenciamento de gua

A telemetria se tornou indispensvel para determinar a qualidade da gua, assim como para verificar as foras exercidas por grandes quantidades de gua sobre determinadas estruturas, como barragens. As principais aplicaes incluem leitura automtica de distncia, monitoramento subterrneo de gua, deteco de vazamentos em distribuio por tubos e vigilncia sobre funcionamento de equipamentos. [2] Nesse caso, o envio dos dados em tempo real ajuda a tomar decises rpidas quanto s ocorrncias. [2]

1.2.3. Sistemas de Defesa, Espaciais e de Explorao de Recursos

Telemetria uma tecnologia que habilita a existncia de sistemas grandes e complexos como msseis, espaonaves, extrao de petrleo e usinas qumicas pois possibilita monitoramento automtico, alertas e gravao de dados necessrios para

15

operaes seguras e eficientes. Agncias espaciais como a NASA se utilizam de sistemas de telemetria/telecomando para coletar dados. [2] A transmisso de dados distncia se mostra vital na fase de desenvolvimento de msseis, satlites e aeronaves, pois a cada teste existe o risco de o prottipo ser destrudo. Os engenheiros precisam de parmetros crticos do sistema para analisar e melhorar a performance do mesmo. Sem a telemetria esses dados no estariam disposio. [2]

1.2.4. Medicina

A telemetria tambm usada em pacientes que esto sobre risco de atividade cardaca anormal, normalmente com uma unidade de monitoramento da coronria, nesse caso sendo chamada de biotelemetria. Esse tipo de paciente vestido com aparelhos de medio, gravao e transmisso. A informao adquirida normalmente til para diagnosticar o paciente. Uma funo de alerta pode avisar enfermeiras sobre estado crtico de um paciente dentro de um hospital ou clnica. [2]

1.2.5. Estudo e controle da vida selvagem

Recentemente a telemetria foi adotada para estudar animais selvagens, sendo particularmente til para monitorar espcies ameaadas de extino em nvel individual. Animais sob estudo podem ser estudados com instrumentos que variam de simples etiquetas at cmeras, aparelhos GPS e transmissores para identificar a posio e outras informaes bsicas para cientistas e vigilantes. [2] 1.2.6. Telemetria em Competies Automobilsticas

A telemetria tem sido um fator decisivo no esporte-motor moderno. Os engenheiros conseguem interpretar a vasta quantidade de dados coletados durante testes ou corridas, usando essa informao para adaptar o carro para timo desempenho. Sistemas utilizados

16

em algumas categorias, como a Formula1, avanaram ao ponto de poder calcular o tempo de volta potencial do carro, sendo esta a meta do piloto. [2] Alguns exemplos de medies teis em um carro de corrida incluem acelerao (fora G) tri-axial, leitura de temperatura em diferentes pontos do carro, velocidade nas rodas e curso de suspenso. Na Formula1, as aes do piloto tambm so medidas, objetivando melhora no desempenho do piloto, assim como, em caso de um acidente, a FIA determinar se houve ou no algum erro por parte do piloto. [2] Apesar de no ser legal na Formula1, existem categorias em que permitida a telemetria de ida e vinda. Telemetria de ida e vinda sugere que engenheiros tem a possibilidade de atualizar calibraes no carro em tempo real, possivelmente enquanto o carro est na pista. Na Formula1, telemetria de ida e vinda apareceu no comeo da dcada de 90 com a TAG electronics, consistindo simplesmente de uma mensagem enviada para o volante, a qual a equipe podia mudar a qualquer momento. Seu desenvolvimento continuou at maio de 2001, quando foi pela primeira vez permitida nos carros. Em 2002 as equipes conseguiam mudar o mapeamento do motor e desativar sensores especficos do motor diretamente do box enquanto o carro estava na pista. Porm, na temporada de 2003 a FIA baniu este tipo de telemetria. Contudo, a telemetria de ida e vinda continua existindo em outras categorias em que seu uso permitido, assim como em alguns carros de rua. [2]

1.2.6.1. Formula1 equipe AT&T WilliamsF1

A telemetria se tornou to importante na Formula1 a ponto de hoje, todas as equipes terem patrocinadores/suporte de alguma grande empresa da rea de eletrnica, informtica e/ou telecomunicaes. No caso da tradicional equipe Williams, uma empresa de telecomunicaes tem tanta influncia e interesse na categoria, que seu nome foi incorporado equipe. Alm disso, uma empresa do setor de informtica auxilia a Williams no quesito telemetria, como mostra a imagem na Figura 1.1.

17

Figura 1.1 - Engenheiros analisando informaes do carro.

Esses poderosos sistemas provm um fluxo constante de informao, a partir do qual a equipe pode fazer ajustes importantes e melhorias mecnicas para maximizar a performance do carro e do piloto. [3] O chefe de projetos da equipe, Gavin Fisher confirma a importncia de telemetria na categoria: "Os dados representam o sangue da vida do projeto. Trata-se da maneira mais direta para se determinar o comportamento do carro em diferentes situaes. A analise desses dados utilizada para corroborar com modelos tericos, estimulando seguir certa direo em novos projetos. Um carro novo sempre produto de desenvolver o bom e erradicar o ruim do carro antigo. Os dados da telemetria tm papel vital nessa funo.". [3] A gama de sensores espalhados pelo carro grande, os dados adquiridos vo desde eficincia aerodinmica at aes do piloto, como a posio do pedal do acelerador. [3] Os nmeros so impressionantes. Segundo informaes de 2002, a cada segundo so feitas 150.000 medies pelo computador central do carro, de aproximadamente 200 sensores espalhados pelo carro. Esses dados so transmitidos com segurana, usando tecnologia de microondas. [3] As transmisses so feitas a cada 2ms, atravs de 2000 canais.

1.3. Telemetria com cabos Originria do idioma grego, a palavra telemetria (medio distncia) sugere a utilizao de sistemas sem fio (wireless) para a transmisso de medies. 18

Todavia, no existe a restrio de um sistema que se utilize de cabos ser chamado de telemetria. Como j mencionado, os primeiros sistemas de telemetria se utilizavam de linhas telefnicas para envio de informaes. Atualmente, a melhor opo para este tipo de telemetria a utilizao de cabos de fibra tica, que consiste basicamente de uma guia para sinais de luz. uma tecnologia que entre suas principais vantagens consta a imunidade contra interferncia eletro-magntica.

1.4. Mdulo XBee Os mdulos de comunicao via radiofreqncia (RF) XBee, fabricados pela MAXTREAM, so mdulos que incluem todo hardware e lgica necessrios para implementar uma rede ZigBee. [4] Basicamente, existem dois tipos de mdulos, o XBee e o XBee-PRO, os quais se diferenciam principalmente pela potncia de emisso e sensibilidade de recepo, logo, o alcance da comunicao diferente. O modelo padro dispe de 16 canais de transmisso, selecionveis por software, com suporte para 65536 endereos por canal e encriptao 128-bits AES. Devido maior potncia do XBee-PRO, esse modelo tem opo por 12 canais de transmisso como resultado do espalhamento de espectro. A maioria dos mdulos XBee opera na faixa de 2,4 GHz, como demonstra a Figura 1.2.

Figura 1.2 - Espectro de freqncia demonstrando 16 canais selecionveis.

19

Os mdulos XBee e XBee-PRO apresentam a mesma pinagem, assim como as mesmas funes de configurao. A Tabela 1.1 faz breve comparao entre os dois modelos.
Tabela 1.1 - Caractersticas dos mdulos XBee e Xbee-PRO.

Existem dois protocolos de comunicao que podem ser utilizados por um XBee, so eles o padro IEEE 802.15.4 e o ZigBee. 1.4.1. Padro IEEE 802.15.4

O IEEE 802.15.4 um protocolo base, um padro para o estabelecimento de comunicao wireless desenvolvido pelo IEEE (Instituto de Engenheiros Eletricistas e Eletrnicos). O IEEE uma associao tcnica e profissional que j desenvolveu uma grande quantidade de standards (padres) para promover o crescimento e compatibilidade entre tecnologias recentes e tecnologias j existentes. Vrios standards j foram definidos pelo IEEE, como Firewire, wirelessLAN, wireless MAN (802.16, Wi-Fi 802.11g,Bluetooth). Enquanto esses padres foram desenvolvidos com preocupao em 20

grande largura de banda, para serem usados em aplicaes com acesso internet, o IEEE 802.15.4 foi desenvolvido com menor taxa de transmisso, fcil conectividade e mnimo consumo de energia. [4] Na Tabela 1.2 apresenta-se uma comparao entre os diferentes padres de comunicao wireless.
Tabela 1.2 - Comunicao wireless.

Pela especificao, a comunicao pode ocorrer em 3 bandas diferentes, destinadas a aplicaes cientficas, industriais e mdicas (ISM):
- 868 - 868,8 MHz - 902 - 928 MHz - 2.400 - 2.4835 MHz

Apesar de qualquer uma destas bandas poderem ser utilizada para os dispositivos 802.15.4, a banda mais utilizada a dos 2,4 GHz, uma vez que esta uma banda livre na maioria dos pases do mundo. [4] Enquanto que nas bandas dos 868 MHz e 915 MHz se utiliza a modulao BPSK (Binary Phase Shift Keying), na banda dos 2,4 GHz o protocolo IEEE 802.15.4 utiliza O-

21

QPSK (Offset Quadrature Phase Shift Keying) com forma de meia senide para modular a portadora de radiofreqncia. [4]

1.4.2. ZigBee

O ZigBee um protocolo que utiliza o standard IEEE 802.15.4 como base e acrescenta uma funcionalidade muito til: a capacidade de estabelecer redes e fazer routing. O protocolo ZigBee foi desenvolvido pela ZigBee Aliance. A ZigBee Aliance um grupo de empresas que trabalharam em conjunto para desenvolver um protocolo para o estabelecimento de redes que pudessem ser utilizadas em diversos ambientes, como por exemplo o comrcio e a indstria, em que no se exigem taxas de transmisso elevadas. Deste modo, o ZigBee foi concebido de modo acrescentar a implementao de mesh networking ao conjunto de funcionalidades ao IEEE 802.15.4. [4] O tipo de rede em malha (mesh networking) principalmente utilizado em aplicaes em que se pretende efetuar a transmisso de dados entre dois ns que esto fora do alcance um do outro. Deste modo, os dados so transmitidos para outros ns intermdios que fazem o redirecionamento da informao at que esta chegue ao destinatrio. [4] Como exemplo, a situao da Figura 1.3. Supondo que seja necessrio transmitir informao do ponto A para o ponto B, porm, a distncia grande demais entre os dois pontos. A informao poderia ser transmitida passando por outros pontos tais como o ponto C.

22

Figura 1.3 - ZigBee, mesh networking

O protocolo ZigBee foi concebido de maneira que independentemente da localizao e disposio dos pontos de envio e recepo de dados, a rede se formasse automaticamente sem necessitar da interveno do utilizador na configurao da mesma. Deste modo, o protocolo encarrega-se de todo o processo de reenvio, confirmaes de recepo e routing das mensagens. No caso de algum dos pontos de envio e recepo de dados for removido ou desligado, uma nova rede ser gerada automaticamente. A esta ltima capacidade do ZigBee pode-se chamar de Self-Healing. Se o ponto C for removido do sistema por alguma razo, um novo caminho seria utilizado para transmitir dados de A para B. [4] Qualquer dispositivo que se encontre dentro das normas ZigBee pode ser utilizado como dispositivos de envio, recepo, ou ambos. Neste ltimo caso, possvel ter simples dispositivos de comunicao bidirecional ou assumir ainda funes de routing e coordenao. Uma vez que o protocolo ZigBee utiliza o IEEE 802.15.4 como base para definir as camadas PHY e MAC, a freqncia, a largura de banda do sinal e as tcnicas de modulao so semelhantes. [4] 23

1.4.3. Comandos AT Para este projeto foi selecionado o modo de comunicao Transparente, que basicamente funciona como uma ligao RS232 sem fio. Neste modo, para modificar ou ler os parmetros do mdulo RF, so utilizados comandos do tipo AT. Cujo formato est ilustrado na Figura 1.4.

Figura 1.4 - Exemplo de comando AT.

Para entrar no modo de comando, necessrio enviar os caracteres +++ e esperar 1 segundo sem enviar qualquer caractere. Caso no ocorram problemas, o XBee responde OK, sinalizando que seus parmetros podem ser lidos/alterados. No exemplo da Figura 1.6, est sendo alterado o endereo de destino, a parte baixa deste. O endereamento feito por 2 bytes (16 bits 65536 possibilidades), DL o byte menos significativo e DH o mais significativo. Pelo fato do valor padro de DH ser 0x00, no ser necessrio alter-lo. Outro comando de endereamento importante o MY. Este comando define o endereo do prprio mdulo. Para comunicao bilateral entre 2 ns, necessrio que o valor MY de um seja igual ao DL do outro. A Figura 1.5 exemplifica este saco.

24

Figura 1.5 - Comunicao ponto a multiponto.

possvel, tambm, definir o n que receber a transmisso atravs do nome dado a um mdulo. Atravs do comando NI possvel definir o nome do modo que est sendo configurado, com limite de 20 caracteres. Para selecionar o n destino, utiliza-se o comando DN seguido do nome do mdulo que dever receber os dados. Caso este nome no ser conhecido, possvel fazer varredura dos mdulos que esto ao alcance, atravs do comando ND, que retornar nome e endereo dos ns descobertos. Figura 1.6 demonstra este tipo de seleo.

Figura 1.6 - Configurao ponto a ponto

25

Alm desses, existem muitos parmetros que so configurados por comandos AT. Alguns exemplos interessantes so: SC: procura por canais de comunicao que no esto sendo utilizados. til quando se est em ambientes onde existem outros aparelhos usando freqncias prximas. ED: mede energia em cada canal. til quando se deseja monitorar atividades de alguma rede, ou mesmo para selecionar um canal para utilizao. PL: diminui a potncia de sada. Dessa forma possvel se adequar s leis de determinado pas, como Japo. Muito til tambm quando 2 ns no esto muito distante um do outro, desse modo, ao diminuir a potncia de sada o consumo reduzido. SM: diferentes configuraes do modo sleep. Uma das principais vantagens do ZigBee/802.15.4 o baixo consumo de energia, cujo principal motivo o modo sleep. RO: determina o nmero de caracteres a serem armazenados no buffer antes da transmisso. DB: detecta o nvel do sinal recebido. KY: chave de encriptao 128-bit AES. uma palavra com at 32 caracteres hexadecimais. O destinatrio deve apresentar a mesma palavra que o transmissor, caso contrrio no receber os dados. WR: grava os valores atuais das configuraes na memria no-voltil. CN: encerra o modo de comando. Ainda existe uma srie de comandos para controlar o uso e transmisso dos 6 canais de A/D embarcados no mdulo, assim como sadas de PWM e transmisso de valores em pinos digitais.

1.5. Placa Arduino Duemilanove

Arduino uma ferramenta de desenvolvimento. Neste projeto, o modelo utilizado Duemilanove. Inspirado na ideologia open-source, trata-se de uma plataforma computacional fsica, baseado em uma placa microcontrolada e um ambiente de desenvolvimento para escrever e gravar o firmware no microcontrolador. [8]

26

A linguagem de programao uma implementao do Wiring, que se trata de uma plataforma similar, por sua vez baseada no ambiente Processing de programao multimdia. [8] Algumas das vantagens do Arduino sobre outros kits so: Baixo custo: alguns modelos podem ser adquiridos por menos de U$ 50. Multi-plataforma: software funciona em ambientes Windows, Mac e Linux. Ambiente de programao simples: easy-to-use para iniciantes, e mesmo assim verstil o suficiente para usurios avanados. Possui vrias built-in functions, facilitando uso geral. Open source: ferramenta de cdigo-aberto, pode ser expandida por programadores experientes por bibliotecas em C++. Alm da programao, disponibilizado todas informaes necessrias para montar o prprio Arduino, seus componentes e ligaes. Informaes de compatibilidade: por ter adquirido ateno [8] de programadores, certos fabricantes fazem seus equipamentos compatveis com Arduino, usando essa caracterstica como atrativo. Alm dessas caractersticas, o tamanho reduzido e opo de gravar firmware via USB so atrativos. Vale ressaltar que quando conectado USB de um computador, no existe necessidade de outro tipo de alimentao no circuito. Na Figura 1.7, o Arduino.

Figura 1.7 - Arduino Duemilanove.

27

1.5.1. Microcontrolador

O modelo Duemilanove apresenta trs opes de microcontrolador: ATmega88 ATmega168 ATmega328 Sendo que entre esses a nica diferena a capacidade de memria, tanto RAM quanto Flash e EEPROM. A Tabela 1.3 mostra a capacidade de cada modelo.
Tabela 1.3 Capacidade de armazenamento ATmega.

Modelo ATmega88 ATmega168 ATmega328

Flash 8k byte 16k byte 32k byte

EEPROM 512 byte 512 byte 1k byte

RAM 1k byte 1k byte 2k byte

Entre as semelhanas desses modelos, a arquitetura AVR. Deste modo, possvel utilizar qualquer biblioteca desenvolvida para microcontroladores com esta arquitetura. Dados importantes: Pinos de I/O: 14 disponibilizados pelo Arduino, dos quais, 6 podem fornecer sada em PWM. Cada pino suporta 40 mA. [8] Conversor A/D: conversor com 10 bits de resoluo, tenso de referncia, multiplexado em 6 canais. [8] Temporizadores: 3 timer/counters disponveis. Destes, dois de 8 bits (com prescaler) e um de 16 bits. Porm, quando utiliza-se built-in functions relacionadas aos temporizadores, como a funo delay(), compromete-se o uso de 1 T/C. Comunicao: suporte para USART, SPI e TWI (IC). Interrupes: ao todo so 26, desde interrupo por overflow de um timer a interrupo externa. Clock: Arduino vem com cristal de 16 MHz. O ATmega168 possibilita 16 MIPS neste caso, podendo ser alterada para 2 MIPS (Diviso por 8) se houver interesse em reduo de consumo, por exemplo.

28

1.6. Baja SAE

O projeto Baja SAE uma competio entre Instituies de Ensino Superior que desafia estudantes de engenharia atravs da simulao de um caso real de desenvolvimento de projeto, com todas as atividades que envolvem o mesmo, visando a aplicao prtica dos conhecimentos adquiridos em sala de aula. O prottipo em questo foi desenvolvido pela equipe da UPF Mas Baja Tch!, composta em sua maioria por acadmicos do curso de Engenharia Mecnica. Foto ilustrativa na Figura 1.8.

Figura 1.8 - Baja SAE - UPF

29

Com este veculo a equipe participa dos campeonatos regional e nacional de Baja SAE. Foi concebido de acordo com a regulamentao deste desafio, que tem por objetivo simular as necessidades e dificuldades de um projeto real de engenharia. Os Baja SAE so prottipos de estrutura tubular em ao, monopostos, para uso offroad, robusto, com quatro ou mais rodas. O veculo deve ser seguro e apto a vencer terrenos acidentados em qualquer condio climtica sem apresentar danos. Deve ser capaz de transportar pessoas com at 1,90m de altura e pesando at 113,4 kg. O motor padro de 10 cv, 1 cilindro. Os sistemas de suspenso, transmisso, freios e o prprio chassi so desenvolvidos pelas equipes, que tm, ainda, a tarefa de buscar patrocnio para viabilizar o projeto. Apesar de, aparentemente, ser um desafio para engenharia mecnica, no existe restrio quanto a curso. Embora exista restrio quanto ao uso de recursos eletrnicos no sistema motor, a utilizao de sensores, aquisio de dados e, por conseguinte, telemetria permitida.

30

2. Sistema Desenvolvido
Neste item, sero definidos os dispositivos utilizados na construo do sistema de telemetria. Algumas consideraes devem ser feitas visando desempenho final satisfatrio: Leitura dos sensores e transmisso dos dados deve ocorrer no menor intervalo de tempo possvel, de modo que se tenha informao atualizada a cada instante. Idealmente, intervalo inferior a 400ms. A comunicao via RF deve ter alcance acima de 400 metros, para que seja possvel enviar os dados para a equipe de qualquer ponto do circuito. Um automvel de competio representa um ambiente hostil a componentes eletrnicos que dependem de bom contato eltrico. O sistema deve ser projetado de acordo a agentar as vibraes que uma competio do tipo off-road-cross implica. Os circuitos das competies so basicamente sobre terra, o que descarta uso de qualquer elemento tico. No que utilizar seja impossvel, mas tratase de um risco no necessrio. De acordo com as necessidades descritas acima, definiu-se o seguinte diagrama de blocos. Expresso pela Figura 2.1.

Figura 2.1 - Diagrama de blocos do sistema de telemetria.

31

Embora esteja presente no diagrama de blocos do projeto, a parte de programao do software para o computador no ser realizada, por falta de tempo hbil. Neste bloco, ento, ser somente descrita a maneira que os dados sero enviados COM do computador, para que este software possa ser feito por quem tenha o devido conhecimento. Na seqncia, a descrio da funcionalidade de cada bloco, do diagrama mostrado na Figura 2.1, com suas caractersticas e solues adotadas.

2.1. Sensores

Como citado no item 2, evita-se o uso de sensores pticos. So utilizados 5 tipos de sensores. Quatro para medir curso de suspenso, um em cada brao de suspenso; um acelermetro tri-axial para medir fora G em trs eixos, gerando assim, trs medies; um sensor de temperatura para medir a temperatura do motor; uma chave magntica colocada no eixo dianteiro para medir velocidade; e um circuito ligado bobina de ignio para determinar o nmero de rotaes por minuto (rpm) do motor. Entretanto, os quatro sensores de curso de suspenso foram extraviados pela equipe. E o nico membro com conhecimento sobre o funcionamento de tais sensores no respondeu s tentativas de contato. Dessa forma, reservaram-se quatro entradas analgicas disponveis. As informaes sobre este sensor so baseadas em informaes de um colega que viu o projeto, porm no tem condies de oferecer mais informaes. necessrio comentar, que caso o modelo dos sensores LDVT tenham sada em forma de tenso analgica, no haveria entradas analgica suficientes, logo, ser utilizado um multiplexador analgico (UTC4053) para solucionar esse problema.

32

2.1.1. Curso de Suspenso

Foi utilizado um sensor magntico do tipo LVDT. Esse sensor consegue medir a posio com altssima preciso e excelente para a operao em questo. Ilustrado na Figura 2.2.

Figura 2.2 Funcionamento dos sensores LVDT .

Em sensores desse tipo, uma corrente alternada aplicada na bobina primria, fazendo com que uma tenso seja induzida em cada bobina secundria proporcionalmente indutncia mtua com a bobina primria. A freqncia da corrente alternada est geralmente entre 1 e 10 kHz. [11] De acordo com a movimentao do ncleo, esta indutncia mtua muda, fazendo com que as tenses nas bobinas secundrias mude tambm. As bobinas so conectadas em srie reversa, com isso a tenso de sada a diferena entre as duas tenses secundrias. Quando o ncleo est na posio central, eqidistante em relao s duas bobinas secundrias, tenses de mesma amplitude porm opostas so induzidas nestas duas bobinas, assim, a tenso de sada zero. [11] Quando o ncleo movimentado em uma direo a tenso em uma das bobinas secundrias aumenta enquanto a outra diminui, fazendo com que a tenso aumente de zero para um mximo. Esta tenso est em fase com a tenso primria. Quando o ncleo se move em outra direo, a tenso de sada tambm aumenta de zero para um mximo, mas sua fase oposta fase primria. A amplitude da tenso de sada proporcional distncia 33

movida pelo ncleo (at o seu limite de curso), sendo assim denominao "linear" para o sensor. Assim, a fase da tenso indica a direo do deslocamento. [11] Trata-se de uma informao til para analise do projeto da estrutura tubular e tambm do prprio sistema de suspenso. Ajustes podem ser feitos de corrida para corrida, dependendo do percurso, para melhor adaptao do carro a determinados obstculos, como costeletas e saltos.

2.1.2. Fora G

Um acelermetro tri-axial mede foras inerciais, acelerao, no eixo longitudinal, horizontal e vertical. Atravs dessa informao, determina-se a magnitude das foras sobre qual chassi e eixos so submetidos, podendo convergir para diminuir a espessura tubular, e, por conseguinte, o peso do veculo. No obstante a isso, tal informao de utilidade tambm para o piloto. Ao fazer uma curva, exercida uma fora lateral, proveniente da inrcia, chamada de fora centrfuga. Tal fora se d em uma direo diferente da desejada pelo piloto, fazendo assim, com que o carro derrape, perca aderncia e velocidade. Com informao sobre fora lateral, o piloto pode testar mtodos de minimizar o efeito de tais foras, melhorando seu desempenho. O acelermetro escolhido o ADXL330. Trata-se de um acelermetro tri-axial (3 eixos) com sadas em tenso analgica. Entre as principais caractersticas est o baixo consumo, 200A com alimentao de 3.3V. Alm disso, boa estabilidade trmica e resistncia acelerao de 10 G, porm quanto a medies s garantido at 3 vezes a gravidade terrestre. Existindo a necessidade de posicionar o acelermetro no centro de massa do automvel, foi confeccionada uma placa de circuito impresso separada da placa principal. O circuito dessa placa est ilustrado na Figura 2.3.

34

Figura 2.3 Circuito do acelermetro tri-axial.

No circuito acima, os capacitores C1, C2 e C3 tm a funo de delimitar o bandwidth das sadas analgicas, sendo que o valor mnimo recomendado de 4,7 F. Por medida de segurana, foi definido um valor um pouco maior, 10 F. Os pinos 12, 10 e 8 do ADXL330, que indicam acelerao nos eixos X, Y e Z, respectivamente, so conectados diretamente a 3 entradas analgicas distintas do Arduino. O ADXL330 tem resposta linear acelerao, sendo 300mV o valor tpico para 1 G. Parte-se desse valor, podendo ser alterado no decorrer dos testes. Equao (1) demonstra o funcionamento: VIN [G ] 0, 3V

AX ,Y , Z =

(1)

O valor relativo gravidade terrestre, cujo valor aproximado de 9,81m/s. Mais informaes sobre testes no item 3.

35

2.1.3. Temperatura do Motor

Apesar de no ser crtico neste caso, interessante monitorar a temperatura do motor para saber quando est sendo exigido demais do mesmo. Caso a temperatura alcance valores acima do estipulado pelo fabricante do motor, a equipe pode avisar o piloto para reduzir o ritmo, utilizando o pedal acelerador de maneira mais suave nas sadas de curva, ou em caso extremo, parar. Para tanto, utilizado o CI sensor de temperatura LM35, capaz de medir temperaturas de -55C at 150C. Com preciso tpica de 0,25C e mnima de 0,75C. Com sada na forma de tenso analgica, fornece 10 mV a cada C. Demonstrado pela equao (2):
V = Temperatura (C ) x10mV (2)

Considerando uma temperatura de 25C, por exemplo, tem se: V = 25 x10mV = 250mV = 0, 25V (3)

Pelo fato de no haver offset nem interesse em medies negativas, utilizada configurao de sensor centgrado bsico, com preciso em temperaturas de 2C a 150C, representada na Figura 2.4:

Figura 2.4 - Configurao de sensor centgrado bsico, LM35.

36

Para maior fidelidade da medio da temperatura, o LM35 fixado no bloco do motor, de maneira a no haver perda de preciso. Espera-se que a temperatura do motor varie entre 70C e 130C.

2.1.4. Velocidade

Embora seja um item fundamental, o automvel da equipe Mas Baja Tch no dispe desta informao. Para fazer um velocmetro foi utilizado um sensor (chave) de Efeito Hall. Um pequeno im fixado na parte interior da roda dianteira esquerda. Ento, a chave de Efeito Hall A3240 fica acoplada a uma parte fixa prxima a roda, de maneira que quando, pela rotao, o im se aproximar da chave hall, esta se fecha, contando uma rotao. A sada do A3240 ligada ao Arduino, o qual atravs de um timer determinar o intervalo a cada rotao completa da roda. Sabendo-se a medida da circunferncia externa do pneu, determina-se a velocidade. A equao (4) demonstra a lgica: Circunferncia(m) Circunferncia(m) [m/ s] ou Velocidade = 3,6 [km/ h] Tempode Rotao(s) Tempode Rotao(s)

Velocidade =

(4)

Figura 2.5 representando o funcionamento do A3240.

Figura 2.5 - Representao da chave hall.

Segundo o fabricante, altamente recomendvel utilizar um capacitor de 100F nos pinos de alimentao, o mais prximo possvel dos mesmos.

37

2.1.5. Freqncia do motor - rpm

Importante para averiguar o funcionamento do motor, tambm til para equipe determinar as relaes entre engrenagens do sistema de cmbio. Um fator importante, considerando-se que existe um limite de 3800 rpm por parte do regulamento. Tendo em mente que o ciclo do motor utilizado pelo Baja de quatro tempos, sabese que ocorre uma exploso a cada duas rotaes. Assim sendo, a vela atua 1 vez a cada 2 ciclos, sendo este o ponto de medio. A idia baseia-se em determinar o intervalo de tempo entre dois acionamentos da vela. Para isso, foi desenvolvido o circuito da Figura 2.6.

Figura 2.6 - Circuito para adequar o sinal ao Arduino.

Como na maioria dos carros de rua, utiliza-se o sinal proveniente da bobina do sistema de ignio para determinar o nmero de rotaes por minuto. R1 tem por finalidade diminuir o nvel de corrente, enquanto D1 e D2 tm o objetivo de limitar a tenso VBE. R2 funciona como resistor de pull-up, evitando curto-circuito quando Q1 est conduzindo, e levando a tenso de sada a VCC quando Q1 est aberto. O sinal de sada levado ao Arduino, que utiliza um timer para determinar a freqncia de giros do motor. Descrito pela equao (5):

f = (n de pulsos ) 2[ Hz ] ou f =

(n de pulsos ) 2 [rpm] 60

(5)
38

2.2. Arduino Duemilanove

As caractersticas deste componente j foram citadas no item 1.5, desse modo, no presente item ser tratado o modo como feita a leitura dos sensores e ligao com o mdulo XBee.

2.2.1. Sensores

Neste projeto, o Arduino tem dois modos de ler a informao proveniente dos sensores: leitura analgica e contagem de pulsos.

2.2.1.1. Nvel Analgico de Tenso

Esto disponveis no Arduino 6 canais A/D. Um canal A/D trata-se de um caminho (pino) cujo nvel de tenso ser interpretado de maneira digital, tambm conhecido como conversor analgico-digital. O conversor em questo tem 10 bits de resoluo, possibilitando a diferenciao de 1024 diferentes nveis de tenso. A faixa de tenso com que o A/D trabalha est compreendida entre a referncia de zero volts (GND) e uma tenso externa de referncia (AREF). Ao invs de utilizar uma referncia externa, pode-se configurar como 5V (VCC) ou 1,1V, por software. Neste projeto, utilizada uma referncia 3,3V, para ter maior preciso nos nveis de sada dos sensores em questo. Quanto lgica de programao, o ambiente Arduino trs uma funo pronta (built-in function) que facilita muita a leitura das entradas analgicas: analogRead(n), sendo n o nmero referente ao canal analgico utilizado. No Anexo C, a demonstrao de um teste realizado. 39

2.2.1.2. Contagem de Pulsos

Ao trabalhar com grandezas que dependem do intervalo de tempo com que certo evento ocorre, comum utilizar chaves, que geram pulsos. Para determinar, ento, a grandeza, necessrio um medidor de freqncia. Neste projeto, o responsvel por isso o microcontrolador do Arduino Duemilanove, atravs de seus mdulos temporizador/contador, tambm conhecidos como timer/counter ou T/Cs. O Arduino apresenta trs mdulos T/C, Timer/counter0, Timer/counter1 e Timer/counter2. Todos os 3 apresentam diferentes prescalers, sendo o maior de 1:1024. O Timer0 e o Timer2 so contadores de 8 bits (256 contagens). J que o Timer1 tem 16 bits (65536 contagens), e apresenta um modo que nenhum dos outros timers tem, o modo de captura. Este modo espera um evento externo (mudana de nvel ou um nvel lgico especifico) para iniciar a contagem, armazenando o valor da contagem quando ocorre outro evento igual ao que iniciou a contagem. Tendo conhecimento do fato de o duty cicle em ambos os casos (em que usado o sistema de contagem de pulsos) no ser 50%, a lgica de deteco no pode ser baseada simplesmente em qualquer mudana de nvel, mas sim considerar bordas de subida ou descida apenas. No Anexo D e Anexo E, demonstraes de dois testes realizados.

40

2.2.2. Interface com XBee

Primeiramente, importante salientar a diferena entre as tenses de XBee e Arduino. Enquanto o Arduino trabalha com 5V de alimentao, mesma tenso que entrega como nvel lgico alto, os mdulos XBee trabalham com 3,3V, no sendo recomendado colocar mais do que 3,4V em seus pinos, havendo risco de dano. Para tanto, se faz necessria adequao do sinal provindo do Arduino, no caso, o pino Tx (transmisso). Como ilustrado na Figura 2.7.

Figura 2.7 - Ligao entre Arduino e XBee

41

Percebe-se pelo esquema, tambm, que a comunicao entre Arduino e XBee se d de forma serial. De fato, segue exatamente o protocolo RS232, utilizado em portas serial de computadores. Mais uma vez, o ambiente de programao do Arduino se mostra til, tendo uma funo (built-in) que facilita a escrita serial: Serial.print(var, HEX), onde var a varivel cujo valor ser enviado e HEX representa o formato em que o valor ser enviado, nesse caso, em hexadecimal.

2.2.3 Funo Geral

A funes do Arduino nesse projeto so de interpretar as informaes provindas dos sensores e envia-las para o mdulo XBee-PRO. Na Figura 2.8, o esquema de ligaes do Arduino.

Figura 2.8 Ligaes entre Arduino e outros elementos do sistema.

42

As 3 sadas do acelermetro so ligadas diretamente a 3 entradas analgicas do Arduino. Entretanto, a sada do sensor de temperatura, assim como os 4 sinais referentes aos sensores de LVDT so selecionados atravs do CI 4053, um multiplexador analgico. A seleo feita pelo Arduino, atravs de 3 pinos digitais (lado direito na Figura 2.8). A adequao entre os nveis do Arduino (5V) e XBee(3,3V) feita atravs de um divisor resistivo no Tx do Arduino. A equao (6) apresenta o clculo desse divisor:

V=

5V i R 2 5V i19k 6 V= R1 + R 2 10k + 19k 6

3, 31V

(6)

Neste projeto, o Arduino alimentado pela bateria do Baja (+12V). A placa conta com reguladores de 5V e 3,3V. Entretanto, para possibilitar a utilizao de outros sensores, ou outro tipo de recurso, o que implica em cargas maiores, foram adicionados 2 reguladores de tenso ao projeto. O CI LM1117 para +3,3V e o 7805 para +5V, ficam em paralelo com os reguladores do Arduino, aumentando a capacidade de corrente geral.

2.2.4 Firmware

Um fator importante para este projeto o intervalo entre medies, o fluxo de informaes recebidas pela equipe. necessrio saber os valores das grandezas instantaneamente. Pensando assim, o firmware foi escrito de maneira que no se perca tempo processando minuciosamente a informao, mas sim, pass-la adiante o mais rpido possvel. O fluxograma simplificado demonstrado pela Figura 2.9.

43

Figura 2.9 Fluxograma simplificado do firmware.

Enquanto os sensores com sada analgica so facilmente interpretados pela funo analogRead(pino), determinar velocidade e rotao do motor constituem dificuldades. Para esses 2 casos necessrio determinar a freqncia dos sinais. Utilizar o Arduino como freqencmetro em si no um problema. A dificuldade est em fazer isso sem comprometer a leitura dos sensores e transmisso de dados. Como explicado anteriormente, deseja-se realizar leituras e transmisses no menor intervalo de tempo possvel, logo, descarta-se a idia de contar nmero de pulsos durante certo perodo. Visando rapidez, foi escolhido medir o tempo entre 2 pulsos, o que gera outros problemas: Caso se espere 2 pulsos para continuar com as transmisses, o sistema s funcionar com o carro andando e motor ligado. Outra desvantagem a demora na atualizao dos valores, que dependem da rotao do motor e velocidade do Baja.

44

Caso se utilize o mdulo captura, as interrupes podem acontecer durante transmisses de dados e estes serem perdidos. Alm disso, em caso de baixa velocidade ou rotao do motor, estourada a capacidade dos contadores, o que gera outras interrupes.

A alternativa encontrada est descrita no item 2.6.

2.3. XBee - Canal

Neste item, sero abordados em conjunto os XBees e o Canal RF. Dessa forma, alm da configurao do XBee, atravs dos comandos AT, tambm ser analisada a comunicao entre os dois XBee do projeto, o que constitui o Canal.

2.3.1. Comunicao entre XBees

Praticamente todos os aspectos de comunicao entre XBees foi abordado no item 1.4. Resumidamente, existem duas possibilidades de protocolo, dependendo do modelo. So os protocolos IEEE 802.15.4 e o ZigBee, que nada mais do que uma evoluo do IEEE 802.15.4. Tm como caracterstica positiva o baixo consumo, alcance relativamente grande e alta imunidade a interferncia.

2.3.1.1. Imunidade a Rudo

O XBee utiliza DSSS (Direct Sequence Spread Spectrum, seqncia direta de espectro espalhado, em portugus) para modular a informao antes de ser enviada. Basicamente, cada bit de informao a ser transmitido modulado em 4 possveis smbolos 45

(outro tipo de alfabeto binrio), esse processo faz com que a informao total ocupe maior largura de banda, mas usa menor densidade espectral de potncia para cada sinal. [9] A Figura 2.10 demonstra esse espalhamento.

Figura 2.10 - DSSS e rudo.

Isso causa menos interferncia nas bandas de freqncia utilizadas e melhora a SRN (relao sinal/rudo, Signal to Noise Ratio) no receptor pelo fato de ser mais fcil identificar e decodificar a mensagem que est sendo transmitida pelo transmissor. [9] Existem diferentes modulaes DSSS, os XBee utilizam a O-QPSK (OffsetQuadrature Phase Shift Keying), possibilitando taxas de transmisso de at 250 kb/s. [9]

2.3.1.2. Imunidade a Interferncia

O protocolo 802.15.4 estabelece o uso de duas tecnologias para evitar que todos os ns de uma rede emitam sinal ao mesmo tempo: CSMA-CA e GTS. A mais comum Carrier Sense Multiple Access-Collision Avoidance (CSMA-CA). Neste mtodo, cada mdulo analisa os sinais na banda em que est configurado. Caso a energia encontrada for maior que um nvel estipulado, o mdulo espera por um intervalo definido, mais um acrscimo randmico, e tenta novamente. [9]

46

A segunda tecnologia Guarantee Time Slots (GTS, garantir espao de tempo). Esse sistema utiliza um n central (coordenador PAN) que determina espaos de tempo para cada mdulo, de maneira que todos mdulos saibam quando devem transmitir. Existem 16 possibilidades de tempo. Como primeiro passo, o mdulo deve enviar ao coordenador PAN uma mensagem requerendo GTS. Como resposta, o coordenador enviar uma mensagem contendo o espao alocado, e o nmero de espaos registrados. [9] A maioria dos mdulos utiliza CSMA-CA, de modo que no dependa de um servidor central. Existem situaes especiais, como pacotes ACK, que no necessitam deste mtodo para funcionar. [9] Uma funo implementada pelo 802.15.4 a varredura de energia de canal (pedido PLME-ED). A idia ser capaz de saber quanta energia (atividade/rudo/interferncia) est presente em um ou mais canais antes de us-lo. Dessa maneira, possvel poupar energia escolhendo um canal livre ao estabelecer uma rede. H trs comportamentos diferentes relacionados deteco de energia: [9] Energia: varre os canais e reporta o nvel de energia encontrado, independente da fonte. Transmisso s ocorre quando o retorno for inferior a um limite prdefinido. Deteco de portadora (CCA): varre os canais procurando por transmisso 802.15.4. S transmite quando o canal estiver livre. CCA + Energia: verifica se existem transmisses 802.15.4 com nvel de energia acima do estabelecido. S utiliza o canal caso retorno for negativo. [9]

2.3.1.3. Baixo Consumo

O XBee est preparado para trabalhar com baixo ciclo de trabalho. Isso significa que o transceiver pode dormir a maior parte do tempo (at 99%) enquanto que tarefas de transmisso e recepo podem ser definidas para usar pequena parte da energia do dispositivo. Essa porcentagem depende do modelo de comunicao utilizado. [9] No caso deste projeto, tal economia no ocorre devido s constantes transmisses. Porm, mesmo assim o consumo inferior a outras tecnologias, como Wi-Fi.

47

2.3.1.4. Potncia de Transmisso e Sensibilidade de Recepo

IEEE 802.15.4 define a menor quantidade de energia necessria para transmisso como -3dBm (0,5 mW), e a sensibilidade mnima no receptor como -92dBm (6,3E-10 mW). Os mdulos XBee-PRO apresentam potncia de sada de 20dBm (100mW), enquanto o XBee padro consegue no mximo 0 dBm (1 mW). Quanto sensibilidade de recepo, o XBee padro consegue detectar sinais de no mnimo -92dBm, limite estipulado pela 802.15.4. J o XBee-PRO, sensvel a sinais de -100 dBm (1E-10 mW). [9]

2.3.2. Comandos AT, configuraes

Para configurar o mdulo XBee de acordo com a necessidade, preciso utilizar os comandos AT. Na seqncia, sero listados os valores de cada parmetro de configurao, com breve descrio. O mdulo ligado ao Arduino ser referido como XBee-Arduino e o mdulo em contato com o computador ser chamado de XBee-PC. As Tabelas 2.1 e 2.2 demonstram os comandos cujos parmetros sero diferentes dos valores padro.
Tabela 2.1 - Configuraes XBee-Arduino.

ATBD7 ATMY77 ATDL33 ATNI Arduino

Configura baud rate como 115200 bps Configura o prprio endereo como 0x77 Configura o endereo de destino como 0x33 Configura ao prprio nome como Arduino

Tabela 2.2 - Configuraes XBee-PC.

ATBD7 ATMY33 ATDL77 ATNI PC

Configura baud rate como 115200 bps Configura o prprio endereo como 0x33 Configura o endereo de destino como 0x77 Configura ao prprio nome como PC

48

Aps configurar os parmetros, necessrio enviar o comando ATWR para registrar os valores na memria no-voltil. Pode-se enviar ATCN para sair do modo de comandos, ou esperar 10 segundos (este tempo pode ser alterado pelo comando ATCT) para sair automaticamente.

2.4. Fonte de Alimentao

Todo o sistema, exceto a parte de recepo no notebook cuja alimentao a bateria do prprio notebook, alimentado pela bateria do Baja. Assim como citado no item 2.2.3, o Arduino j possui reguladores de tenso para +5V e +3,3V. A capacidade de corrente, no entanto, no seria suficiente para o XBee-PRO transmitir dados. O XBee-PRO necessita 250mA e o regulador de 3,3V fornece no mximo 50mA. Para solucionar esse problema, foi projetado o circuito da Figura 2.11. Os +12V so provenientes da bateria do Baja, enquanto os reguladores de +5V e +3,3V esto em paralelo com os equivalentes do Arduino.

Figura 2.11 Fonte de alimentao.

49

R1 e D1 tm funo de proteo. Enquanto D1 protege o restante do circuito de tenso negativa, R1 tem por objetivo limitar a corrente mxima em pouco mais de 1A, como demonstrado pela equao (7):
PR1 = ( I R1 ) 2 i R1 Como a potncia mxima do resistor 1/4W, ou 0,25W, tem-se:

(7)

I MaxR1 =

PR1 0, 25 I MaxR1 = = 1, 066 A R1 0, 22

(8)

Pelo fato de o LM1117 ser de low dropout, no aconselhvel utilizar tenso de entrada muito superior de sada. Sendo assim, ele alimentado por +5V. Os capacitores de 100nF so para desacoplamento. Demais capacitores e seus valores constituem recomendaes dos fabricantes. O 7805 fornece 1 A em 5V e o LM1117 fornece mais de 800 mA em 3,3V.

2.5. Intervalos de Tempo, Freqncias e Taxas

Sendo o objetivo do projeto leituras instantneas, esses parmetros tm grande importncia. Estabelecendo uma linha do tempo dos eventos necessrios para a informao chegar equipe de box: Leitura das grandezas: tanto por A/D como por pulsos. Envio dos dados do Arduino para XBee. Envio dos dados do XBee-Arduino para o XBee-PC. Leitura dos dados pelo PC.

No se pode desconsiderar, tambm, certo atraso relativo rotina do Controlador. As instrues para qualquer ao consomem tempo. Normalmente um tempo muito curto, mas ainda assim est presente.

50

2.5.1. Converso A/D

Segundo a Atmel, fabricante do ATmega168, cada converso leva entre 13 e 260s. necessrio, alm disso, considerar certo atraso devido rotina de leitura. Logo, considerando o pior caso, considera-se que cada converso tomar 300 s para ser realizada. Tomando por base a quantidade de 8 converses A/D por ciclo de transmisso, temse: 8 A / D = 300 s i8 = 2, 4ms (9)

Levando em conta atrasos devido a mudanas de canal, tanto do multiplexador do ATmega168 (interno) como do multiplexador 4053, considera-se o tempo de 8 converses como 3 ms.

2.5.2. Leitura por Pulsos

O tempo necessrio para averiguar esse tipo de grandeza, assim como seu envio, difere das leituras analgicas. Pelo fato de sua mensurao ser mais lenta em relao s leituras analgicas, o valor transmitido pode no mudar entre 2 ou mais ciclos. Isso ocorre nica e exclusivamente pelo fato de o intervalo de tempo entre 2 pulsos poder ser maior que o tempo total de um ciclo de transmisso. Ou seja, todos os dados podem ter sido enviados sem que tenha ocorrido o segundo pulso. Mesmo assim, ser estimado os possveis intervalos de tempo entre 2 pulsos.

51

2.5.2.1. Rotaes do Motor

O regulamento da categoria Baja SAE estabelece que a rotao mxima para qualquer motor deve ser de 3800 rpm. Por outro lado, quando ligado, a rotao mnima no deve baixar de 400 rpm. Logo, convertendo a base de minuto para segundo: 400 = 6, 67 rotaes / s 60 s

RotaoMIN =

(10)

O que em termos de perodo, equivale a: 1s = 150ms 6, 67

MAX =

(11)

Lembrando que a vela acionada 1 vez a cada 2 rotaes, tem-se o dobro do perodo exposto na equao (11), ou seja: 300 ms. Sendo a rotao mxima: 3800 = 63, 33 rotaes / s 60 s

RotaoMAX =

(12)

O que em termos de perodo, equivale a: 1s = 15, 79ms 63, 33

MIN =

(13)

Sendo o intervalo entre 2 pulsos da vela igual a 31,58 ms. Desse modo, estabelece-se que caso a rotao seja de 400 rpm e o tempo total de 1 ciclo de transmisso for inferior a 300 ms, existe a possibilidade dessa leitura no ser atualizada.

52

2.5.2.2. Velocidade

Trata-se de um problema maior que o caso anterior (item 2.5.2.1), pois em vrias ocasies a velocidade o Baja ser realmente baixa, como por exemplo, na largada e em toda curva fechada. Sabendo-se que o permetro do pneu tomado como base de 45 cm, possvel determinar a faixa de operao. Circunferncia(m) [m / s] Tempo de rotao(s) 0, 45m Tempo de rotao(s)

Vel =

Vel =

(14)

Pela equao (14), possvel determinar o tempo de uma rotao, que equivale ao tempo entre 2 pulsos. Por exemplo, 10 m/s de velocidade: 0, 45m = 0, 045s = 45ms 10m / s

TROTAO =

(15)

2.5.3. Envio dos Dados para XBee-Arduino

A taxa de transferncia entre XBees de 250 kbps. Entretanto, a interface do XBee aceita baud rate mxima de 115200 bps, valor que utilizado neste projeto. Assim, a taxa a ser considerada para os clculos de 115,2 kbps. Conhecendo a resoluo do A/D interno do Arduino, sabe-se que os valores obtidos sero de 10 bits. Como os dados so transmitidos no formato hexadecimal, so necessrios 3 caracteres para cada medida deste tipo, sendo que o primeiro e o ltimo valor ser acrescido de um caractere indicador. preciso, tambm, levar em considerao que a cada caractere (8 bits, 1 byte) enviado, so necessrios 2 bits extras para determinar comeo e fim do byte, resultando que cada caractere constitua transmisso de 10 bits. Ento, tm-se os seguintes intervalos de tempo para dados provenientes do A/D:

53

T n bits =

n de bits 30 bits T 3 bytes = 115200bps 115200bps

260 s

(16)

T 4 bytes =

40 bits 115200bps

347 s

(17)

J os dados relativo s medies por pulsos podem ser de diferentes tamanhos, sendo o pior caso de 4 bytes, o qual esta considerado na equao (17).

2.5.4. Envio dos Dados do XBee-Arduino para o XBee-PC

Pelo fato de a taxa de transmisso ser 250kbps, superior aos 115,2 kbps do item anterior, essa comunicao no influencia no tempo de um ciclo de transmisso. Porm, representa um atraso, delay entre a medio e a visualizao das grandezas. n de bits 115200bits / s

Tdelay =

(18)

2.5.5. Envio dos Dados do XBee para PC

Assim como no item anterior, no influencia o tempo de um ciclo de transmisso, somente interfere no delay entre aferio e visualizao das grandezas. Este delay tem o mesmo valor do atraso calculado no item 2.5.3.

2.5.6. Atrasos

Em todo sistema de comunicao existe atraso entre o envio e recepo dos dados. Em um sistema de telemetria existem dois tipos distintos de atrasos. Um referente ao

54

tempo que leva para uma medio ser atualizada. E outro referente ao tempo que as informaes levam para chegar a seu destinatrio. A partir desse ponto, o primeiro caso ser referido simplesmente como atraso, enquanto o segundo caso ser referido como delay.

2.5.6.1 Perodo de Um Ciclo de Transmisso

O perodo de um ciclo depende dos atrasos, os tempos necessrios para que todas as tarefas de um ciclo sejam completadas. Pelo item 2.5.1, sabe-se que o tempo de 8 converses A/D de 3 ms. As leituras referentes a velocidade e rpm no so atualizadas necessariamente a cada ciclo, o que no implica em atraso. Entretanto, a cada leitura A/D, verificado se houve atualizao de velocidade ou rpm . Este ato de verificar causa um atraso. Testes indicam que este atraso no passa de 20us por verificao, mas por questes de segurana, ser considerado que todas verificaes, somadas, causam atraso de 1 ms. Alm disso, necessrio considerar o atraso causado pela interface Arduino e XBee, calculado para cada transmisso no item 2.5.3. Os atrasos desta interface constituem: 8 leituras A/D de 10 bits : 4 de curso de suspenso, 3 do acelermetro e 1 de temperatura. Constituindo o envio de 3 bytes por 8 vezes. 2 leituras de freqncia com no mximo 14 bits: velocidade e rpm. Resultando em envio de 4 bytes por 2 vezes. n de bits 30 8 = 8 115200bits / s 115200bits / s n de bits 40 2 = 2 115200bits / s 115200bits / s

T3bytes 8 vezes =

2, 08ms

(19)

T4bytes 2 vezes =

694 s

(20)

55

No obstante a isso, preciso considerar que cada uma das 10 transmisses deve conter 2 bytes extras para identificao de comeo e fim do pacote transmitido. Assim, soma-se a envio de 2 bytes 10 vezes. n de bits 20 10 = 10 1, 736ms 115200bits / s 115200bits / s

T2bytes10 vezes =

(21)

Assim sendo, o perodo total de um ciclo de transmisso aproximadamente: TcicloTx = T8 xA / D + Tverificaes + T4bytes 2 vezes + T3bytes 8 vezes + T2bytes10 vezes (22)

TcicloTx = 3ms + 1ms + 2, 08ms + 0, 694ms + 1, 736ms = 8,51ms

(22)

Segundo a equao 22, a cada 8,51ms os dados sero atualizados, menos velocidade e rpm que dependem de sua ocorrncia. Este valor terico bem inferior a 300ms, tomado como objetivo. Percebe-se tambm, que uma taxa de dados to elevada pode acarretar problemas para armazenamento de todos os dados. Alteraes podem ser feitas nesse sentido, no futuro.

2.5.6.2 Delay geral do Ciclo de Transmisso

O delay geral pode ser considerado como o perodo de um ciclo, acrescido dos elementos que no causam atraso no ciclo, mas causam delay. Assim, preciso considerar tanto o atraso do Arduino para oXBee como do outro XBee para o PC. Alm de considerar o delay referente comunicao entre os XBees 10bits 52 = 2, 08ms 250kbits / s

TdelayXBee =

(23)

Gerando um delay total de: 56

TdelayTOTAL = TcicloTx + 2, 08ms + 0, 694ms + 1, 736ms + TdelayXBee = 15,1ms

(24)

2.6. Firmware

Neste sub-captulo, a soluo ao problema descrito no item 2.2.4. A soluo encontrada foi utilizar o timer1 no modo captura, para contar o intervalo de tempo entre pulsos referentes freqncia de rotao da roda dianteira esquerda. Para rpm, a soluo encontrada foi utilizar interrupo externa, em conjunto com um timer, de modo a determinar o intervalo de tempo em que a vela acionada. Entretanto, interrupes no foram habilitadas, para no interferir em converses e transmisses. O que foi feito so verificaes para determinar se pulsos ou overflows ocorreram. Em ambos os casos, a informao processada o mais breve possvel aps o pulso.

2.6.1. Velocidade

Configurado com prescaler de 1:1024. O que significa que o clock com que o timer1 trabalha ser dividido por 1024, gerando nesse caso uma freqncia efetiva de 15625 Hz. 1 = 64 s f

T=

(25)

Segundo a equao (25), a cada 64 s o valor do contador do timer1 (TCNT1) incrementa em 1. Sabendo que este contador tem 16 bits (65536 contagens), determina-se que a capacidade se esgota em: TMAX = 64 s 65536 4, 2 s (26) 57

Pode-se ento, calcular qual a menor velocidade possvel de se medir sem estourar a capacidade do contador. Pela equao (14), se 1 rotao demorar 4,2 segundos, a velocidade ser de: 0, 45m 4, 2 s 0, 45m 3, 6 = 0,386km / h 4, 2 s

VelMIN =

0,107 m / s ou VelMIN =

(27)

Valores realmente baixos, ou seja, no necessrio passar da capacidade padro. J para a velocidade mxima, considera-se o menor intervalo de tempo detectvel, que segundo a equao (26) de 64 s.: 0, 45m 0, 45m = 7031, 25m / s ou VelMAX = 3, 6 = 25312, 5km / h 64 s 64 s

VelMAX =

(28)

Por outro lado utilizar prescaler reduz a resoluo. Para determinar a resoluo, considera-se a diferena entre a mxima e a mnima velocidade, levando em conta a quantidade de nveis de diferenciao envolvidos. No caso, 65536. Assim, em termos de velocidade, a resoluo de: VelMAX VelMIN 7031, 25 0,107 = 65536 65536

R=

0,1073m / s R

0,3862km / h (29)

Conhecendo os limites estabelecidos pelo timer1, resta a verificao de flags. Como demonstra o fluxograma da Figura 2.12:

58

Figura 2.12 Fluxograma das verificaes de velocidade.

2.6.1. RPM

Para aferio de rpm foi utilizada a interrupo externa INT0 configurada para borda de descida. O timer0 foi utilizado com prescaler de 1:1024. Entretanto, o timer0 tem somente 8 bits (256 contagens), sendo necessrio contar o nmero de vezes que sua capacidade estoura. A Figura 2.13 demonstra a lgica das verificaes referentes a rpm.

59

Figura 2.13 Fluxograma das verificaes referentes a rpm.

2.7. Computador

O computador somente receber os dados dos sensores, que so lidos pelo Arduino e transmitidos do XBee-Arduino para o XBee-PC, o qual est ligado a entrada USB de um notebook.

2.7.1. Conexo XBee - PC


A mobilidade fator chave nesse projeto, logo, descarta-se o uso de um computador desktop, e consequentemente, entrada serial padro. Para conexo entre XBee-PC e o notebook, ser utilizada uma placa conversora CON USBEE, ilustrada na Figura 2.14.

60

Figura 2.14 - Placa para conexo entre XBee-PC e notebook.

A placa adaptadora, alm de converter o padro do XBee para os nveis da USB, apresenta algumas informaes teis ao usurio, expostas na Figura 2.15:

Figura 2.15 - informao CON USBEE

Trs LEDs verdes sinalizam o nvel do sinal: abaixo de 10dBm; entre 10 e 20 dBm; e acima de 20 dBm. [5] Os LEDs Tx e Rx sinalizam, respectivamente, os momentos em que transmite-se informao ou recebe-se a informao. Enquanto que o outro diodo emissor de luz sinaliza se este mdulo est ou no associado a uma rede.

61

2.7.2. Software

Neste item est abordada a maneira que os dados chegam COM do notebook. So apenas descries e sugestes para o software. O sistema de telemetria envia constantemente dados para a porta COM do computador. Esses dados devem estar sempre na mesma ordem. Todos pacotes so enviados em formato hexadecimal convertidos para caractere ASCII. Por exemplo, o nmero decimal 255 equivalente a 0xFF hexadecimal ser enviado como dois caracteres f. Aps o valor, sempre enviado um carriage return e um new line, que devem ser usados para separar os pacotes. Ao todo so 10 pacotes enviados a cada ciclo, sendo que o primeiro e o ltimo contm Tags de identificao. Para o primeiro pacote, s necessrio verificar se seu valor (convertido para decimal) superior a 61000. Para o ltimo pacote, necessrio verificar se seu valor superior a 53247 e inferior a 55000. importante que o ciclo completo seja validado somente caso as condies do primeiro e ltimo pacote sejam verdadeiras. A ordem dos pacotes a seguinte: Acelerao Eixo X Acelerao Eixo Y Acelerao Eixo Z Temperatura do Motor Velocidade RPM Suspenso, Dianteira Esquerda Suspenso, Dianteira Direita Suspenso, Traseira Esquerda Suspenso, Traseira Direita Sendo Acelerao Eixo X o primeiro pacote com tag e o curso de Suspenso, Traseira Direita o ltimo, assim como o primeiro, com tag.

62

Para interpretar os dados necessrio determinar a relao da converso analgico/digital. Sendo a referncia 3,3V e o conversor de 10 bits: 3, 3V 1023

R=

3, 22581mV

(30)

Sabendo disso, possvel definir os clculos das grandezas convertidas pelo A/D. Para os 3 eixos do acelermetro, de acordo com a equao (1) tem-se: DADO DADO [G ] = 300mV / 3, 22581mV 93

Fora GX ,Y , Z =

(31)

Importante lembrar que o DADO referente ao eixo X deve ser subtrado de 0xF000 antes de aplicar a equao (31). Para temperatura do motor, segundo a equao (2): DADO DADO = [C ] 10mV / 3, 22581mV 3,1

Temp =

(32)

Velocidade, segundo equao (14): 0, 45m 0, 45m [m / s ] ou Vel = 3, 6[km / h] DADO 64 s DADO 64 s

Vel =

(33)

Rotaes por minuto, de acordo com equaes (5) e (25): 60 s [rpm] DADO 64 s

RPM =

(34)

Os campos referentes medidas de curso de suspenso devem ficar desativados at que seu funcionamento seja conhecido. Ainda assim, ao ltimo pacote, Suspenso Traseira Direita, deve ser subtrado 0xD000 antes de qualquer ao.

63

A idia inicial era que o software fosse capaz de mostrar o valor de todas as medidas ao mesmo tempo, atualizando seus valores assim que recebidos. Importante tambm, armazenar todos os dados para melhor anlise e mobilidade. Alm disso, caso possvel, exibir esses valores em um grfico em funo do tempo.

64

CONSIDERAES FINAIS

Aps o estudar o funcionamento, caractersticas e configuraes dos elementos do projeto, foi possvel identificar o nvel de complexidade do mesmo. Muitas aspectos tiveram de ser levados em conta, decises sobre qual modelo de XBee necessrio, configuraes do mesmo para realizar transmisses de forma mais veloz possvel e adequao de nveis entre Arduino e XBee. Melhores mtodos de adquirir informaes como velocidade e rpm, sem contar a deciso de quais grandezas medir e que sensores utilizar. Tambm, o mtodo de realizar contagem de pulsos sem interferir tanto nas converses A/D quanto nas transmisses foi um desafio. Por outro lado, conhecer o potencial de componentes como XBee e Arduino abre um novo leque de possibilidades. Infelizmente, at a data de entrega deste, no foi possvel implementar o projeto. Uma srie de pequenos fatores, indefinies e indecises atentaram contra a montagem e instalao do sistema. Pode-se citar a indefinio sobre qual acelermetro utilizar, devido disponibilidade; o novo Baja-SAE estar em processo de montagem, inviabilizando testes; e indeciso sobre como abordar velocidade e rpm atravs do Arduino, o que gerou atraso no desenho da placa de circuito impresso. Foram feitos testes com Arduino e XBee, utilizando a placa COM USBBee e todos os itens se mostraram compatveis. Os resultados tericos, entretanto, foram satisfatrios. Conseguiu-se projetar um sistema com baixo tempo (estimado) de atualizao dos dados, pouco menos de 9 ms, quando o esperado era prximo de 300 ms. Foi possvel projetar uma fonte de alimentao capaz de fornecer energia suficiente para comunicao do XBee-PRO. Mas, desde o princpio, a inteno foi instalar o Sistema de Telemetria Automotiva no veculo Baja-SAE da UPF, o que ser realizado mesmo aps o encerramento da disciplina. 65

REFERNCIAS BIBLIOGRFICAS

[1]

BELLIS, Mary. Telemetry History of DNS.

Disponvel em: <http://inventors.about.com >. Acesso em: 25 abril 2009.


[2]

New World Encyclopedia contributors. Telemetry, New World Encyclopedia 2008.

Disponvel em: <http://www.newworldencyclopedia.org/entry/Telemetry?oldid=683623> Acesso em: 29 abril 2009.


[3]

HP Formula One. Telemetry gathering at WilliamsF1.

Disponvel em: <http://www.f1technical.net/features/685> . Acesso em: 29 abril 2009.


[4] MONTEIRO,

Jnio;EY, Emanuel. ZigBee uma abordagem prtica. Universidade do

Algarve. 2008.
[5] MESSIAS,

A. Rogrio. Controle remoto e aquisio de dados via XBee/ZigBee IEEE

802.15.4 .Disponvel em:< http://www.rogercom.com/ZigBee/ZigBee.htm>. Acesso em: 15 abril 2009.


[6] Colaboradores

do VIVASEMFIO.com. ZigBee.

Disponvel em:< http://www.vivasemfio.com/blog/zigbee-homerf-modulos-xbee-802154xctu-maxstream/>. Acesso em: 20 abril 2009.


[7] ZigBee

Alliance. ZigBee Specification, Feature Set.

Disponvel em:<http://www.zigbee.org>. Acesso em: 20 maro 2009.


[8] Arduino

Project. Getting started, Reference, Hardware, FAQs.

Disponvel em: <http://www.arduino.cc>. Acesso em: 14 maro 2009. 66

[9] GASCN,

David. 802.15.4 vs ZigBee. Disponvel em:<http://www.sensor-

networks.org/index.php?page=0823123150> . Acesso em: 3 maio 2009.

[10] TORRES,

Gabriel. Tecnologia da AMD nos Carros da Formula1 da Ferrari. Disponvel em: <http://www.clubedohardware.com.br/artigos/1293>. Acesso em: 15 maio 2009.

[11] Colaboradores

da WIKIPDIA. LVDT. Disponvel em: <http://pt.wikipedia.org/wiki/LVDT> . Acesso em: 2 junho 2009.

Analog Devices. ADXL330 Datasheet. 2006. Disponvel em: <www.analog.com>. Alegro Microsystems. A3240 Datasheet. 2000. Disponvel em: <www.alegromicro.com>. Atmel Corporation. ATmega168 Datasheet. 2009. Disponvel em: <www.atmel.com>. Fairchild Semiconductor. KA78XX Datasheet. 2001. Disponvel em: <www.fairchildsemi.com>. Unisonic Technologies. UTC 4053 Datasheet. Disponvel em: <www.unisonic.com.tw>. National Semiconductor. LM1117 Datasheet. 2006. Disponvel em: <www.national.com>. National Semiconductor. LM35 Datasheet. 2000. Disponvel em: <www.national.com>. MaxStream Inc. XBee OEM RF modules Product Manual. 2006. Disponvel em: <www.maxstream.net>.

67

ANEXO A Esquema eltrico do Arduino Duemilanove

ANEXO B Firmware utilizado no Arduino Duemilanove

Rotina escrita para o ambiente de programao Arduino. Verso do compilador: Arduino 0016.

Descrio de algumas funes do compilador: pinMode(n,OUTPUT ou INPUT) define se o pino n entrada ou sada. analogRead(n) l valor analgico do pino n. Serial.println(dado,HEX) envia dado pela serial em formato hexadecimal. Aps o dado enviado uma Carriage Return (\r) e New Line (\n). digitalWrite(n,nvel lgico) coloca pino n como nvel lgico alto ou baixo.
int captura=8; int xpin = 0; int ypin = 1; int zpin = 2; int xMux = 3; int yMux = 4; int zMux = 5; int ext0 = 2; int Tx = 1; int Rx = 0; int Ax = 5; int By = 6; int Cz = 7; unsigned int vel; unsigned int rpm; void setup() { Serial.begin(115200); pinMode(ext0, INPUT); pinMode(xpin, INPUT); pinMode(ypin, INPUT); pinMode(zpin, INPUT); pinMode(xMux, INPUT); //Inicia serial em 115200 bps //configura PB0 como entrada //configura INT0 como entrada // // // // pinMode(captura, INPUT); //Seleo mux //Seleo mux //Seleo mux // Velocidade // x-axis // y-axis // z-axis // Saida X do mux // Saida Y do mux // Saida Z do mux // Interrupo externa 0

pinMode(yMux, INPUT); pinMode(zMux, INPUT); pinMode(Tx, OUTPUT); pinMode(Rx, INPUT); pinMode(Ax, OUTPUT); pinMode(By, OUTPUT); pinMode(Cz, OUTPUT); TCCR1B=0x0E; OCR1A=0xFFFF; EICRA=0x02; EIMSK=0x00; TCCR0B=0x05; digitalWrite(Ax,0); GPIOR0=0x00; } void loop() { //

// // // // // //

//TOP do cont= OCR1A, limpa TCNT1 auto, pre-scaler 1024, borda de descida //Configura INT0 por borda de descida //Sem Interrupes externas //Seleciona X0 como sada de X //Registrador de uso geral0. Valores aceitveis: 0x00 a 0x1F

//TAG 0xF000 para identificar o primeiro pacote de dados do ciclo Serial.println((analogRead(xpin)+0xF000),HEX); verifica(); verifica(); Serial.println(analogRead(zpin),HEX); verifica(); Serial.println(analogRead(xMux),HEX); verifica(); Serial.println(vel,HEX); verifica(); Serial.println(rpm,HEX); digitalWrite(By,0); digitalWrite(Cz,0); verifica(); Serial.println(analogRead(yMux),HEX); verifica(); Serial.println(analogRead(zMux),HEX); verifica(); digitalWrite(By,1); verifica(); //Selecionando Y1 como sada de Y Serial.println(analogRead(yMux),HEX); //Selecionando Y0 como sada de Y //Selecionando Z0 como sada de Z //Entrada X0 do mux

Acelereo Eixo-X

//Verifica por pulsos (ou overflows) referentes a velocidade e rpm // Acelereo Eixo-Y // Acelereo Eixo-Z Temperatura do motor

Serial.println(analogRead(ypin),HEX);

// Velocidade // RPM do motor

// Curso da suspenso, Dianteira Esquerda // Curso da suspenso, Dianteira Direita

// Curso da suspenso, Traseira Esquerda

70

digitalWrite(Cz,1);

//Selecionando Z1 como sada de Z

//TAG 0xD000 para identificar o ltimo pacote de dados do ciclo - Curso da suspenso, Traseira Direita Serial.println((analogRead(zpin)+0xD000),HEX); verifica(); }

void verifica(void) { if(ICF1==1) { vel=ICR1; //+(cont1*65536); TIFR1=0x20; } else if(TOV1==1) { vel=0; TIFR1=0x01; } if(INTF0==1) { //Atualiza valor de contagens considerando numero de overflows do timer0 rpm=TCNT0+(256*GPIOR0); EIFR=0x01; TIFR0=0x01; GPIOR0=0; TCNT0=0x00; } else if(TOV0==1) { GPIOR0++; EIFR=0x01; //Conta overflows do timer0 //Limpa flag TOV0 //Limpa flag da INT0 //Limpa flag TOV0 //Zera contagem de overflow do timer0 //Se no houver captura durante 4 segundos, considera velocidade = 0 //limpa o flag TOV1 //Atualiza valor de vel conforme contagem //limpa o flag ICF1

//Caso no haja 1 rotao a cada meio segundo (menor que 120 rpm), considera como zero if(GPIOR0>=30) rpm=0; } }

71

ANEXO C Teste A/D do Arduino


Utilizando o esquema da Figura C.1, foi realizado um teste para verificar o funcionamento das entradas analgicas.

Figura C.1 - Teste do conversor A/D

Primeiramente o potencimetro seleciona 0V. Depois da primeira medio, um valor intermedirio e por fim 5V. A rotina e os resultados esto expressos na Figura C.2.

Figura C.2 - rotina e resultados.

Os valores das converses so enviados ao Serial Monitor (fundo preto), que representa o Hyperterminal. Os valores esto de acordo com o esperado. 72

ANEXO D Teste Interrupo Externa do Arduino


Utilizando a chave de efeito Hall conectada ao pino referente interrupo externa 0 (pino digital 2 do Arduino), como proposto no item 2.1.4. Obteve-se o resultado exposto pela Figura D.1.

Figura D.1 - rotina e resultado.

Com a rotina da Figura D.1, o Arduino fica esperando uma interrupo externa por borda de descida. Quando isso acontece (plo sul de um im se aproxima da chave Hall), a interrupo externa 0 ativada. Ento, a rotina de tratamento (show) envia a expresso: Interrupt Externa 0 para a serial.

73

ANEXO E Teste do Modo Captura do Arduino

Utilizando a chave de efeito Hall conectada ao pino referente ao modo Captura (pino digital 8 do Arduino), como proposto no item 2.1.4. Obteve-se o resultado exposto pela Figura E.1.

Figura E.1 - rotina e resultados.

Pela rotina da Figura E.1 o Arduino espera por uma borda de descida no pino referente Captura. Quando esse pulso ocorre, o valor de contagens do timer copiado para o registrador ICR1. Este valor, ento, enviado pela serial.

74