UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ - UTFPR DEPARTAMENTO ACADEMICO DE INFORMÁTICA CURSO DE ENGENHARIA DE COMPUTAÇÃO André Augusto Dequech Carvalho Lucas Teixeira de Godoi Max Raphael Sobroza Marques SENSOR PARA CAPTAÇÃO DA ACELERAÇÃO EM UMA RAQUETE DE TÊNIS Curitiba 2011 1 André Augusto Dequech Carvalho Lucas Teixeira de Godoi Max Raphael Sobroza Marques SENSOR PARA CAPTAÇÃO DA ACELERAÇÃO EM UMA RAQUETE DE TÊNIS Relatório de Qualificação apresentado à Disciplina Oficina de Integração II, do Curso Superior de Engenharia de Computação do Departamento Acadêmico de Informática da Universidade Tecnológica Federal do Paraná. Orientador: Prof. Juliano Mourão Vieira Co-Orientador: Prof. Hugo Vieira Neto Curitiba 2011 2 Monografia do trabalho Sensor para Captação da Acaeleração em uma Raquete de Tênis da disciplina Oficina de Integração II, da Universidade Tecnológica Federal do Paraná (UTFPR), aprovada em 2011 por: ____________________________________ Prof. Juliano Mourão Vieira Orientador ____________________________________ Prof. Hugo Vieira Neto Co-Orientador 3 RESUMO A presente monografia relata sobre o trabalho desenvolvido na disciplina Oficina de Integração 2. Durante esse período, desenvolvemos um estudo sobre sensores, mais especificamente um acelerômetro, com o intuito de acoplar o acelerômetro a uma raquete de tênis, obtendo assim a aceleração, velocidade e força da raquete em um saque. Para isso utilizamos um microcontrolador necessário para interação com o sensor. Na construção do projeto integramos conhecimentos de várias áreas como programação, eletrônica, física e matemática. A dificuldade no desenvolvimento do projeto se deve na comunicação entre o microcontrolador e o acelerômetro assim como interpretação e estudo sobre sensores. Este projeto pode contribuir significativamente para treinos no esporte de tênis por otimizar os treinos do mesmo. 4 ABSTRACT This monograph is about the work developed in the discipline Integration Workshop 2 of the undergraduate course in Computer Engeneering of Federal Technologichal University of Paraná. During this period, we developed a study on sensors, more specifically an accelerometer, in order to attach the accelerometer to a tennis racket, getting the acceleration, velocity and force of the racket in a serve. For this we used a microcontroller required for interaction with the sensor. In the construction of this project, we integrate knowledge from different areas such as programming, electronics, physics and mathematics. The difficulties implementing the project were the communication between the microcontroller and the accelerometer as well as sensors interpretation. This project may contribute significantly to optimize training of tennis. 5 LICENCIAMENTO Esta obra está licenciada sob a Creative Commons Atribuição Comercial-Compartilhamento pela mesma Licença. Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/3.0/br/ ou envie uma carta para Creative Commons, 171 Second Street,Suite 300, San Francisco, Califórnia, 94105 , E.U.A.. 6 AGRADECIMENTOS Agradecemos aos nossos professores da Disciplina de Oficina de Integração II, que nos incentivaram no desenvolvimento do projeto, proporcionando ao grupo um grande processo de aprendizagem: Prof. Hugo Vieira Neto e Prof. Mário Sérgio Freitas. Agradecemos também ao professor orientador Prof. Juliano Mourão Vieira pela disposição em ajudar a desenvolver e concluir o projeto. Agradecemos também ao grupo desenvolvedor do projeto Instrumento Musical Eletrônico Baseado na Detecção de Ondas Mecânicas em uma Superfície, principalmente aos integrantes Amanda Micoski Lins, Dalton Erasmo dos Santos e Kelvin Elton Nogueira da Silva pelo empréstimo de materiais e pelas ideias e explicações sobre o projeto. 7 LISTA DE FIGURAS Figura 1 Esquema de Um Acelerômetro Capacitivo....................................................18 Figura 2 Esquemático do Acelerômetro Piezoelétrico..................................................19 Figura 3 Esquema de Comunicação do Protocolo I²C.................................................22 Figura 4 Sinal de Dados se Sinal de Clock..................................................................22 Figura 5 Esquema de Montagem do Sistema..............................................................24 Figura 6 Mostra o registrador 9 do acelerômetro MMA 7456L.....................................25 Figura 7 Processo de Leitura do Acelerômetro MMA 7456L........................................27 Figura 8 Processo de Escrita do Acelerômetro MMA 7456L........................................27 Figura 9 Registrador 0x16 do Acelerômetro MMA 7456L............................................28 Figura 10 Arduino Duemilanove...................................................................................36 Figura 11 Top View do acelerômetro MMA 7456L.......................................................37 8 LISTA DE TABELAS Tabela 1 Valores de Saída e Acelerações....................................................................30 Tabela 2 Requisitos do arduino....................................................................................35 SUMÁRIO 9 1. INTRODUÇÃO...............................................................................................11 1.1 OBJETIVO.........................................................................................11 1.2 METODOLOGIA................................................................................11 2. REVISÃO BIBLIOGRÁFICA.........................................................................13 2.1 A ACELERAÇÃO E A FORÇA NO DOMINIO DA MECÂNICA CLASSICA...............................................................................................14 3. ESPECIFICAÇÕES DO SISTEMA................................................................16 3.1 COMPONENTES DO SISTEMA.......................................................16 3.1.1 Arduino................................................................................16 3.1.2 Acelerômetros......................................................................17 3.2 PROTOCOLO I2C.............................................................................20 3.2.1 Comunicação de Dados......................................................21 4. METODOLOGIA............................................................................................23 4.1 DESCRÇÃO GERAL DO PROJETO................................................23 4.2 FUNCIONAMENTO DO SISTEMA...................................................24 4.2.1 Registradores......................................................................24 4.2.2 Descrição do Protocolo I2C no Projeto................................26 4.2.2.1 Leitura de Byte.......................................................26 4.2.2.2 Escrita de Byte.......................................................27 4.2.3 Funcionamento Geral do Sistema.......................................27 4.2.3.1 Etapa Inicial............................................................28 4.2.3.2 Segunda Etapa......................................................29 4.3 SOFTWARE......................................................................................31 4.3.1 Biblioteca Wire.....................................................................31 4.3.2 Estrutura de Dados..............................................................32 4.3.3 Cálculo da Velocidade e Força............................................32 10 4.3.4 Dicionário de Funções.........................................................34 4.4 HARDWARE.....................................................................................34 4.4.1 Arduino Duemilanove..........................................................34 4.4.2 Acelerômetro MMA 7456L...................................................36 4.4.3 Circuito Impresso.................................................................38 5. CONCLUSÃO................................................................................................39 5.1 CONCLUSÃO DO TRABALHO.........................................................39 5.2 TRABALHOS FUTUROS..................................................................40 6. BIBLIOGRAFIA.............................................................................................41 11 1. INTRODUÇÃO O Tênis de quadra é um esporte que requer um grande treinamento do atleta, o atleta precisa se dedicar ao máximo e a cada dia buscar mais a postura correta para aperfeiçoar seu jogo. O jogo de tênis é um reflexo do que é feito nos treinamentos, ou seja, quanto mais o atleta se dedicar no treinamento aperfeiçoando suas jogadas, melhor será sua performance na hora da partida. Para esse aperfeiçoamento, fizemos a proposta de integrar a raquete de tênis a um sensor, esse sensor terá a responsabilidade de obter alguns dados que serão mostrados para o atleta, facilitando assim a visualização de erros cometidos, proporcionando a oportunidade para um melhor treino e consequentemente, uma melhor partida. Quanto mais se evolui a tecnologia, mais se torna presente no cotidiano da sociedade. Uma das áreas que é muito atingida por essa evolução tecnológica é a área dos esportes. Os aparelhos eletrônicos passaram a ser muito utilizados nessa área, favorecendo o desenvolvimento dos esportes. Assim sendo, utilizar aparelhos eletrônicos durante treinos de determinada modalidade de esporte pode facilitar no progresso do jogador, pois serviria para auxiliar o treinador ou o esportista a avaliar seu desempenho. 1.1 OBJETIVO Este projeto visa aumentar a eficiência nos treinos de tenistas. Para isso, será criado um sensor que captará a aceleração da raquete. Utilizando integração numérica obteremos a velocidade da raquete no momento de contato com a bola. Isso permitirá avaliar o treino, possibilitando consertar erros cometidos durante uma partida. 1.2 METODOLOGIA Materiais utilizados: 12 1. Um acelerômetro digital. 2. Um microcontrolador. 3. Raquete de tênis. O projeto consiste em buscar a aceleração e a velocidade da raquete durante o saque de um atleta, podendo assim fazer uma verificação de como foi seu desempenho no mesmo. Para a construção do artefato, estaremos usando um microcontrolador Arduíno, modelo Duemilanove. Também utilizamos um acelerômetro digital, MMA 7456l, que possibilita a captura do valor da aceleração nas três dimensões existentes. Fixaremos o Arduíno com o acelerômetro na raquete, em qualquer ponto, mas por conveniência colocaremos na parte superior do braço da raquete. Para a facilitar a montagem do artefato, também construímos uma shield, que são circuitos com pinos que se encaixam perfeitamente sobre os conectores de entrada de um Arduíno, também com um soquete instalado na placa de circuito impresso para encaixar o acelerômetro, assim ficando tudo fixo na raquete. O acelerômetro terá a responsabilidade apenas de captar as acelerações do movimento quando o atleta estiver realizando o saque. No Arduíno estará toda a parte do código que são os cálculos para interpretação dos dados vindos do acelerômetro. Os dados interpretados serão mostrados ao usuário através de uma interface simples, programada na linguagem processing, esses dados serão visualizados por gráficos que mostrarão aproximadamente os valores reais das acelerações e velocidades no eixo escolhido. 13 2. REVISÃO BIBLIOGRÁFICA O tênis de quadra é um esporte olímpico muito antigo. Segundo a Confederação Brasileira de Tênis (s.d.) um esporte muito parecido era jogado na França, por volta do século XIII, pelas altas classes sociais. O jogo passou a ser difundido pela Europa, principalmente na Inglaterra, onde a aristocracia britânica passou a praticar o esporte. No Brasil, esse esporte passou a ser conhecido no final do século XIX, e, desde então, começou a crescer no país. Primeiramente o esporte era jogado com as mãos nuas, posteriormente sendo utilizadas luvas, e uma bolinha de madeira. Segundo a Confederação Brasileira de Tênis (s.d.), as raquetes foram criadas pelos italianos, quando as luvas foram substituídas por utensílios de madeira na forma de pá. Mais tarde, esses utensílios foram aprimorados recebendo um cabo e cordas trançadas, além da bola de tênis passar a ser preenchida com material de celulose, dando mais dinâmica ao jogo. (QUADRA TÊNIS, s.d.). A raquete de tênis é uma peça indispensável na prática desse esporte e é um equipamento que atrai muita atenção em termos de sua evolução tecnológica. Diversos materiais já fizeram parte desse instrumento que continua em constante mudança, sempre pensando em otimizar ao máximo o desempenho dos atletas, e minimizar o gasto de energia durante as partidas ou treinamentos. Para um melhor desempenho em qualquer esporte, diversos treinos devem ser realizados para preparo do atleta. Durante um treino (ou jogo), são realizadas milhares de batidas para melhorar o controle sobre a bola e a força aplicada sobre ela. Garcia (2005) afirma que no tênis treino é muito mais do que treino, treino é jogo. Ele diz que se o jogador treinar com uma postura determinada, com certeza saberá que atingiu o seu máximo, não se arrependendo do tempo que se dedicou ao esporte. Garcia ainda diz que o tenista deve se cobrar diariamente e constantemente analisando e consertando cada erro cometido. Quanto melhor a evolução do tenista nos treinos, melhor será o desempenho do mesmo nas quadras. Analisar quando o rendimento do treino decaiu ou medir e regular quão forte foi uma batida na bola pode facilitar no desenvolvimento do atleta. 14 2.1 A ACELERAÇÃO E A FORÇA NO DOMÍNIO DA MECÂNICA CLASSICA O modelo mecânico newtoniano, enquanto modelo, é uma obra acabada e redutível a três leis do movimento. Os enunciados das leis de Newton são os seguintes: 1ª lei: "Qualquer corpo em movimento retilíneo uniforme (ou em repouso) tende a manter-se em movimento retilíneo uniforme (ou em repouso)”, somente na ausência de forças resultantes sobre o corpo (JR, SOARES & FERRARO, 2005, p. 173). 2ª lei: “A resultante das forças aplicadas a um ponto material é igual ao produto de sua massa pela aceleração adquirida (F = m.a)” (JR, SOARES & FERRARO, 2005, p. 175). 3ª lei: “Sempre que dois corpos quaisquer A e B interagem, as forças exercidas são mútuas. Tanto A exerce força em B, como B exerce força em A. A interação entre corpos é regida pelo princípio da ação e reação” (JR, SOARES & FERRARO, 2005, p. 183). A mecânica cinemática estuda a descrição do movimento utilizando conceitos de espaço e tempo, sem levar em conta as causas desse movimento. Diferente da mecânica dinâmica que estuda o movimento de um corpo e a relação desse movimento com conceitos como força e massa (SERWAY & JR, 2008, p. 40). A validade das leis da mecânica clássica se dá através de movimentos usuais a nível macroscópico, mas deixam de valer quando as velocidades são comparadas à velocidade da luz (NUSSENZVEIG, 2002). Como em nosso projeto trataremos de velocidades bem inferiores à velocidade da luz poderemos assim usar a teoria da mecânica clássica para idealizar o conceito da aceleração. No ponto de vista da mecânica clássica o conceito de aceleração é a taxa temporal de variação da velocidade. No SI sua unidade é metros por segundo ao quadrado (m/s²). 15 A segunda lei de Newton está fortemente presente em nosso projeto, visto que a força aplicada para movimentar a raquete, onde sua condição inicial no eixo do movimento é de repouso, é caracterizada pela seguinte equação: F = m.a, onde: F = Força resultante aplicada no objeto. m = Massa do objeto. a = Aceleração que o objeto adquire. A força resultante (F) que atua em um corpo é diretamente proporcional à aceleração que ela produz no corpo. A unidade de força, no Sistema Internacional (SI) é Newton (N). Experimentalmente, podemos verificar que a aceleração adquirida por um corpo no qual foi aplicada força resultante, possui a mesma direção e o mesmo sentido dessa força, isto é, os vetores de aceleração e força tem sempre as mesmas direções e sentidos. 16 3. ESPECIFICAÇÕES DO SISTEMA Utilizando sensores adequados, é possível captar a aceleração de objetos e assim ter dados suficientes para calcular a velocidade e a força exercida no mesmo. Assim, um tenista será capaz de avaliar seu desempenho durante o treino e analisar os pontos fortes e fracos da partida. 3.1 COMPONENTES DO SISTEMA O artefato é composto basicamente por: 1) Uma peça de processamento e aquisição de dados, Microcontrolador, Arduíno. 2) Um sensor capaz de captar acelerações, Acelerômetro. 3) Um cabo serial, capaz de levar informações do microcontrolador a um computador para que gráficos e processamento de alto nível possam ser feitos. 3.1.1 Arduino O Arduino é um microcontrolador baseado em um sistema de código aberto, sendo assim bem flexível e de fácil manuseio até mesmo para iniciantes. Ele permite o desenvolvimento de objetos interativos, com sensores, luzes, motores, entre outros, além de poder ser desenvolvido de maneira autônoma ou interligado a aplicações de computador (ARDUINO, 2010). O microcontrolador é programado em uma linguagem denominada Linguagem de Programação Arduino, sendo esta, baseada na linguagem Wiring. O ambiente de desenvolvimento do arduino é baseado em Processing (uma linguagem de programação) (ARDUINO, 2010). A escolha do arduino se deve ao fato de ser um microcontrolador de fácil aprendizado além de permitir o uso de Shields, que são placas que se conectam diretamente nos pinos do arduino e podem ser facilmente substituídas. No projeto foi utilizado um arduino Duemilanove por ser um modelo básico e de baixo custo. 17 3.1.2 Acelerômetros São dispositivos eletromecânicos que relacionam a aceleração com um sinal de saída, assim sendo possível medir a aceleração sobre objetos. Este sinal de saída pode ser um sinal analógico ou digital. Os modelos de acelerômetros são capazes de detectar a magnitude e o sentido da aceleração e podem ser interpretadas por outros dispositivos. Os acelerômetros geralmente são constituídos por uma massa suspensa em uma estrutura estacionária. Sempre que há aceleração a inércia presente nessa massa cria uma resistência ao deslocamento e esta se move em relação a estrutura rígida. Os acelerômetros possuem diversas aplicações, como para cálculo em queda livre, medição da aceleração de corpos em movimento, captação de movimentos em uma superfície entre outros. Existem vários tipos de acelerômetros que diferem um dos outros pelo principio físico de funcionamento. Podemos citar os micro acelerômetros, os capacitivos, os piezoelétricos e os acelerômetros piezoresistivos. (FIGUEIREDO et al, 2007) a) Micro acelerômetros Detectam acelerações e vibrações devido a propriedades da estrutura do silício e suas respectivas interdigitações. O MEMS obtém a aceleração a partir dos deslocamentos dos elementos móveis. Este movimento é convertido pelo sensor em sinais analógicos ou digitais. Dentre as especificações que devem ser consideradas para a escolha de um acelerômetro estão a faixa de frequências de operação, o nível de ruído, a sensibilidade entre eixos de medição (i.e. no caso de sensores com mais de um eixo), a linearidade, a faixa dinâmica (alcance) de medição, a resistência a impactos e o consumo de energia e as respectivas variações temporais. (WERNECK, 1996) b) Acelerômetros capacitivos 18 Capacitores são componentes elétricos que armazenam carga. São formados por duas placas paralelas, separadas por material isolante, cuja capacitância é dada por: C= ε. A/ d, onde: ε = Constante dielétrica do material isolante. A = Área dos eletrodos ou das placas. d = Distancia dos eletrodos ou das placas. C = Capacitância do capacitor. No acelerômetro capacitivo a aceleração da massa causa variação da distância devido ao movimento livre da placa e, portanto resulta em uma mudança na capacitância elétrica (FIGUEIREDO et al, 2007). Na Figura 1 é possível observar o esquemático do acelerômetro, onde o movimento da massa (que é presa a uma mola) entre as placas é livre. Este movimento altera a distância relativa dos eletrodos fixados na parte inferior e superior e consequentemente acarreta em uma alteração da capacitância. Figura 1. Esquema de um Acelerômetro Capacitivo (FREESCALE, 2009). Para o projeto, foi utilizado um acelerômetro capacitivo MMA 7456L da marca Freescale por ser um acelerômetro digital, o que causa menos ruído, além de ser de baixo custo, alta sensibilidade e suportar fortes choques (FREESCALE, 2009). 19 c) Acelerômetros Piezoelétricos Os acelerômetros piezoelétricos utilizam-se de cristais denominados “cristais piezoelétricos” que têm propriedade de originar uma tensão elétrica quando comprimidos. Estes cristais, geralmente o quartzo (dióxido de silício), convertem energia elétrica em energia mecânica. (WERNECK, 1996) No acelerômetro em corte da Figura 2, é possível visualizar o cristal de um lado apoiado no corpo transdutor e do outro fixado à massa. Qualquer aceleração sofrida pelo transdutor obrigará a massa a apertar ou alongar o cristal, que produzirá um sinal elétrico proporcional à força gerada na massa. Apenas a componente paralela ao eixo do transdutor provocará o efeito piezoelétrico, as outras componentes serão desprezadas. Portanto para medir acelerações nos três eixos de coordenadas, utilizamos um transdutor que possui três cristais independentes entre si. E fornece tensões independentes entre si. (WERNECK, 1996) Figura 2. Esquemático do Acelerômetro Piezoelétrico (WERNECK, 1996). d) Acelerômetros Piezoresistivos Esse acelerômetro utiliza de componentes piezoresistivos em substituição ao cristal piezoelétrico. Segundo Figueiredo (2007) a aceleração submetida cria uma variação no componente piezoresistivo que é detectada por um dispositivo denominado ponte de Wheatstone. Netto (s.d.) explica que a ponte de Wheatstone é um método utilizado para determinar a resistência em 20 um resistor utilizando resistores e um galvanômetro. A maior vantagem deste tipo de acelerômetro é que ele pode identificar mudanças de aceleração com frequências baixas infinitesimais. 3.2 PROTOCOLO I2C Segundo Suyama (2006) um protocolo de comunicação é um conjunto de normas que estão obrigadas a cumprir todas as máquinas e programas que intervêm em uma comunicação de dados entre computadores. Então, o protocolo controla a ordem de chegada das mensagens e organiza a forma de envio dos sinais. Para explorar os melhores benefícios dos dispositivos eletrônicos engenheiros e projetistas visam melhorar a eficiência de hardwares e minimizar a complexidade dos circuitos. O protocolo foi criado pela Philips em 1996 e visa a simplicidade e facilidade de comunicação entre dispositivos digitais (DIAS FILHO, s.d.). Esse protocolo utiliza apenas dois sinais para comunicação, um para o sinal de clock (sincronização) denominado SCL (serial clock) e um para a troca de dados denominado SDA (serial data line). Para Dias Filho (s.d.) as maiores vantagens de se utilizar o protocolo são: 1. Organização funcional em blocos. 2. Não há necessidade de o projetista desenvolver interface, já que os dispositivos integram as interfaces. 3. Endereçamento e protocolo de transferência de dados totalmente definido via software. 4. Diagnóstico de falhas simples. 5. Facilidade no desenvolvimento de placas de circuito impresso, devido a quantidade de interconexões. 21 3.2.1 Comunicação de Dados A comunicação de dados ocorre entre dois dispositivos, sendo um deles denominado Master (ou mestre) e o outro denominado Slave (ou escravo). O Mestre geralmente é o dispositivo com maior capacidade de processamento. Em um sinal, os dados são lidos e recebidos pela forma de bits (representação de numero binária), onde o primeiro pulso de sinal contém a intenção do controlador de ler ou enviar dados ao respectivo dispositivo. O protocolo segue basicamente duas etapas. Primeiramente o dispositivo mestre sincroniza os dois dispositivos enviando um sinal de clock. Posteriormente ocorre a transmissão dos dados entre eles pela via do serial data (SDA). Segundo Dias Filho (s.d.) a comunicação entre os dois dispositivos e a transmissão dos dados é dada por uma sequencia de oito bits e ocorre da seguinte maneira: 1. O dispositivo Master ajusta as condições iniciais. 2. O dispositivo Master envia sete bits para o Slave para dizer com qual dispositivo se deseja comunicar (envia o endereço do dispositivo). 3. O Master envia o oitavo bit dizendo se deseja ler ou escrever no dispositivo. 4. O dispositivo Slave retorna um bit para o Master dizendo que entendeu a comunicação (Acknowledge bit). 5. O dispositivo Master ou Slave envia pacotes de oito bits contendo a informação desejada sempre seguido de um ACK (Acknowledge bit) dizendo se o Slave ou Master recebeu as informações. 6. A comunicação termina quando o Master envia um bit de parada (ou stop bit). É possível observar na Figura 3 o esquema da comunicação entre o Master e o Slave. 22 Figura 3. Esquema de Comunicação do Protocolo I²C (Arduino Brasil 2010). A maneira como os bits são enviados funciona da mesma forma que circuitos integrados, por pulsos de clock. O sinal de clock é geralmente um trem de pulsos retangulares ou uma onda quadrada. O sinal de clock é distribuído para todas as partes do sistema, sendo que a maioria das saídas (se não todas) muda de estado apenas quando ocorre uma transição no sinal de clock (TOCCI; WIDMER; MOSS, 2008, p 181). Logo o sinal de clock é constante e determina o endereço dos pacotes de oito bits a serem enviados. Assim, quando ocorre uma transição do sinal de clock, o sinal de dados muda de estado (números binários 1 ou 0) até completar a informação desejada. É possível observar na Figura 4 o sinal de clock (SCL) e o sinal de data (SDA) e um exemplo de comunicação entre os dispositivos. Figura 4. Sinal de Dados se Sinal de Clock (DIAS FILHO, s.d.). 23 4. METODOLOGIA 4.1 DESCRIÇÃO DO PROJETO O projeto consiste na criação de um sensor capaz de detectar a aceleração, a velocidade e a força aplicada em uma raquete de tênis durante uma batida. Para isso será necessário o uso de um computador com entrada USB, um microcontrolador Arduino Duemilanove com Atmega 328 e um acelerômetro digital MMA 7456L da empresa Freescale. O acelerômetro é capaz de detectar acelerações em três eixos denominados eixo X, eixo Y e eixo Z. A cada movimento da raquete o acelerômetro captará e enviará as informações que ele adquirir para o Arduíno, onde o mesmo irá processar os dados, traduzindo a informação recebida. Essa forma de comunicação entre o microcontrolador e o acelerômetro seguirá os passos do protocolo I²C descrito no tópico 3.2 Protocolo I²C deste documento. Através de um cabo serial, o microcontrolador irá se comunicar com um computador e irá apresentar a aceleração adquirida da raquete em um gráfico. Com esses valores de acelerações, nos 3 eixos, será possível calcular a velocidade da raquete e a força aplicada na mesma durante o movimento. Para comunicação do microcontrolador com o acelerômetro digital é preciso implementar um código de programação que seguirá o protocolo I²C e será escrita na linguagem de programação Arduino. Na Figura 5 é possível ver a placa de fenolite usada no projeto e o acelerômetro acoplado na placa. A placa foi presa a rede da raquete e o cabo usb serial ligado a um computador. 24 Figura 5. Esquema de Montagem do Sistema. 4.2 FUNCIONAMENTO DO SISTEMA Após realizadas as devidas ligações entre o acelerômetro, o arduino e o computador, o sistema irá funcionar adequadamente, acoplando o arduino diretamente na raquete. O arduino será encaixado na parte posterior do cabo, entre o cabo e a rede da raquete. Essa posição foi determinada pela equipe principalmente para não atrapalhar no movimento da raquete. 4.2.1 Registradores O acelerômetro digital possui uma espécie de memória do próprio sensor denominada registrador. Eles servem para armazenar algum dado antes que se possa ler ou armazenar alguma informação escrita pelo agente externo. Cada registrador possui um número (geralmente definido em hexadecimal, número representado pela base 16) para representá-lo. Quando 25 se deseja acessar os dados que estão armazenados naquele registrador, é preciso indicar qual o endereço (ou número) do registrador, assim acessando a informação contida nele, ou escrevendo alguma informação no registrador. Os dados armazenados nos registradores são representados por um número binário, sendo que cada bit possui um valor específico. O acelerômetro MMA 7456L possui 32 registradores sendo que cada um deles possui uma função definida no sensor como escrita ou leitura, por exemplo, caso queira ler o valor de uma aceleração do eixo X, é preciso acessar o registrador 0x06 (ou o numero seis na base decimal) e ler a informação armazenada. Na Figura 6, é possível observar o registrador 0x09 (ou nove) do mesmo acelerômetro. O registrador nove é responsável por mostrar o status do sensor e é possível somente lê-lo. Caso o registrador seja acessado, enviará como resposta um pacote contendo três bits (mostrado na figura como sendo D0, D1 e D2). É possível observar que cada bit (representado por 0 ou 1) mostra algum status do sensor, identificando o comportamento do acelerômetro no momento da leitura. Caso o D0 (que representa o status DRDY) esteja em 1, mostra que o acelerômetro está com a Data ativada, e se mostrar 0 a Data estará desativada. Figura 6. Mostra o registrador 9 do acelerômetro MMA 7456L (FREESCALE, 2009). 26 4.2.2 Descrição do Protocolo I²C no Projeto O acelerômetro irá seguir o protocolo de comunicação I²C, já descrito anteriormente, para se comunicar com o arduino. Seguindo o protocolo de comunicação o arduino funcionará como Master e o acelerômetro será o Slave. O sistema irá se comportar exatamente como o protocolo exige. O arduino irá sincronizar com o acelerômetro gerando um sinal de clock (SCL). O acelerômetro irá responder a esse sinal por meio do sinal de dados (SDA). É possível observar nos dois processos como o acelerômetro se comporta ao seguir o protocolo. Quando é desejado escrever um valor em algum registrador é preciso enviar o endereço do acelerômetro e depois enviar o número do registrador. Caso nada seja escrito no registrador o acelerômetro já entenderá que o Master deseja ler algum valor ao invés de escrever. 4.2.2.1 Leitura de Byte Para a leitura de dados, primeiramente o arduino irá transmitir uma condição inicial (denominada ST). Para identificar qual dispositivo o Master está tentando se comunicar, o arduino enviará o endereço do acelerômetro, definido como 1D (número hexadecimal) seguido de um bit que será definido como escrita (representado por 0), pois o arduino deseja escrever qual registrador será realizada a leitura. O acelerômetro responde com um bit denominado ACK (Acknowledgement), que mostra que o Slave entendeu a informação (FREESCALE, 2009). O Master envia um pacote de sete bits com o número do endereço do registrador que se deseja ler, seguido de uma resposta do acelerômetro (ACK). Então o Master envia novamente uma condição inicial (denominado como SR) e envia novamente o endereço do acelerômetro, dessa vez seguido de um bit de leitura (representado por 1). Então o acelerômetro passa a enviar um bit de resposta (ACK) seguido de pacotes de sete bits, representando os dados desejados e totalizando oito bits (FREESCALE, 2009). Na Figura 7 é possível observar o processo inteiro de leitura no acelerômetro MMA 7456L. 27 Figura 7. Processo de Leitura do Acelerômetro MMA 7456L (FREESCALE, 2009). 4.2.2.2 Escrita de Byte Na escrita, o Master precisa enviar uma condição inicial, exatamente como na leitura, seguido do endereço do Slave (1D) e um bit de escrita definido como zero. O acelerômetro irá responder com um bit denominado ACK (Acknowledgement), mostrando que o Slave entendeu as informações. Então o Master envia o número do registrador em uma sequencia de sete bits, novamente recebendo um ACK como resposta (FREESCALE, 2009). O arduino passa a enviar pacotes de sete bits representando a informação desejada a escrever em algum registrador do acelerômetro, sempre seguido de um bit de resposta (FREESCALE, 2009). A Figura 8 mostra o processo de escrita do acelerômetro MMA 7456L, seguindo exatamente os passos descritos acima. Figura 8. Processo de Escrita do Acelerômetro MMA 7456L (FREESCALE, 2009). 4.2.3 Funcionamento Geral do Sistema Após as conexões, o sistema irá se comportar seguindo dois passos básicos. O primeiro será a inicialização e a preparação para o funcionamento do sistema. A segunda será constante e irá durar até o desligamento do sistema. 28 4.2.3.1 Etapa Inicial Primeiramente o arduino irá sincronizar com o acelerômetro e irá preparar o protocolo de comunicação I²C para comunicação com o acelerômetro. Feito esse passo, o arduino será capaz de ler e escrever nos registradores do acelerômetro. Para funcionamento adequado do sistema, o arduino precisa inicializar o sensor em seu modo de controle. O modo de controle do acelerômetro MMA 7456L está instalado no registrador 0x16 (ou 22 em número decimal). Assim o microcontrolador precisa acessar o registrador 0x16 e escrever nele as informações desejadas. Figura 9. Registrador 0x16 do Acelerômetro MMA 7456L (FREESCALE, 2009). Pela Figura 9 é possível observar cinco variáveis que determinam o funcionamento do acelerômetro. No presente projeto, será utilizada uma sensibilidade de medição de 2g (ou duas gravidades, onde uma gravidade representa o valor de 9,8m/s²), visto que não será necessário utilizar uma sensibilidade maior. A sensibilidade representa o máximo que o acelerômetro conseguirá medir, logo a aceleração não passará de duas gravidades pois a sensibilidade limita esse valor. O modo (ou Mode) será modo de medida, o auto teste estará em ativo, pois o acelerômetro se auto testará, analisando se as ligações feitas estão 29 corretas, assim o acelerômetro emite um pequeno choque na massa entre as placas do capacitor analisando se ela está se movendo. O auto teste é somente feito quando o sistema é iniciado e não interfere no decorrer do processo de captação das acelerações (FREESCALE, 2009). SPI3W estará como padrão (já que o protocolo utilizado é o I²C e não o protocolo SPI) e o DRPD estará como ativo para podermos utilizar o modo de Data Ready (será explicado adiante). Assim, o arduino enviará um sinal para o acelerômetro na forma de escrita, enviando sete bits em sequência (0010101). Após o movimento do sensor, ele é capaz de captar as acelerações nos 3 eixos X, Y e Z. Como o acelerômetro é bastante sensível, qualquer movimento permite que acelerações sejam captadas instantaneamente e em qualquer momento algum valor pode sobrepor outro valor comprometendo o funcionamento do sistema. Com o objetivo de organizar a leitura desses valores, alguns acelerômetros digitais possuem uma forma de ordem na leitura dos valores controlada pelo Data Ready. O acelerômetro salvará em seus registradores e possibilitará a leitura das acelerações após a captação somente quando o Data Ready permitir. Então, se o Data Ready não estiver pronto para enviar algum tipo de dado, o acelerômetro não permitirá a leitura das acelerações. Logo o Data Ready é habilitado quando o arduino inicializa o acelerômetro e somente quando ele estiver em estado ativo que o arduino poderá ler as acelerações captadas. Sempre, após a leitura o Data Ready é visto como inativo e estará ativo somente após a captação de algum dado. 4.2.3.2 Segunda Etapa A segunda etapa persiste continuamente até o sistema ser desligado. Após a inicialização do acelerômetro, o arduino espera até o acelerômetro captar as 3 acelerações, nos eixos X, Y e Z. Quando o Data Ready é definido como high (ou como ativo) o acelerômetro passa essas informações para o arduino. 30 O microcontrolador então regula essas acelerações para valores apropriados, já que os valores recebidos chegam fora de um padrão, processo denominado calibragem do acelerômetro. Após a calibragem, é preciso converter os números recebidos em valores concretos de aceleração. Para isso é utilizada a Tabela 1 apresentada pelo datasheet. Cada modo de medida apresenta um valor para a aceleração e quanto ela representa em valor da gravidade. Assim é possível converter os valores adquiridos pelo acelerômetro em valores concretos contendo unidades de medida. Tabela 1. Valores de Saída e Acelerações (FREESCALE, 2009). Assim, no modo 2g (usado no projeto) o valor da gravidade (1g) será representado por C1 (ou -63 em número decimal), já que o acelerômetro está invertido internamente, e representará 9,8m/s². Após a conversão, o arduino adiciona essas acelerações em uma estrutura de dados denominada pilha para assim, calcular a velocidade e a força aplicada na raquete. 31 4.3 SOFTWARE Pressman (2006, p. 4) define software como instruções que quando executadas fornecem as características, funções e desempenho desejados. Eles são estruturas de dados que permitem que programas manipulem adequadamente a informação sendo documentos que descrevem operações e usos de programas. O software criado para o presente projeto foi implementado na linguagem de programação arduino. O software segue exatamente os passos descritos no tópico 4.3.2 Funcionamento Geral do Sistema. O código escrito no programa serve para passar as informações desejadas para o microcontrolador, obrigando o mesmo a seguir exatamente as ordens escritas. 4.3.1 Biblioteca Wire Como descrito anteriormente, para a comunicação de dados entre o acelerômetro e o arduino, é preciso implementar um protocolo de comunicação entre eles, sendo que este projeto utilizou do protocolo I²C. A biblioteca Wire, do arduino, contém todas as funções para implementar o protocolo I²C em linguagem de programação arduino. O ambiente de programação do arduino permite importar essa biblioteca facilmente. Então, caso seja necessário escrever alguma informação no sensor, é preciso somente chamar duas funções da biblioteca Wire, uma para começar a transmissão e outra para enviar o registrador e os dados. É possível obter mais detalhes da biblioteca no site oficial do arduino, onde todas as funções são descritas adequadamente. Ele pode ser acessado em: ARDUINO. Biblioteca Wire. Disponível em: <http://arduino.cc/en/Reference/Wire> Acesso em: 15 Nov. 2011. 32 4.3.2 Estrutura de Dados Estrutura de dados é o ramo da computação que estuda os diversos mecanismos de organização de dados para atender aos diferentes requisitos de processamento (RICARTE, 2003). As estruturas de dados definem a organização, métodos de acesso e opções de processamento para a informação manipulada pelo programa. A definição da organização interna de uma estrutura de dados é tarefa do projetista da estrutura, que define também qual a API para a estrutura, ou seja, qual o conjunto de procedimentos que podem ser usados para manipular os dados na estrutura (RICARTE, 2003). O presente projeto utilizou de uma estrutura de dados denominada lista encadeada, mais especificamente uma pilha para o armazenamento de acelerações para cálculos futuros. Uma lista encadeada é uma representação de uma sequência de objetos na memória do computador. Cada elemento da sequência é armazenado em uma célula da lista: o primeiro elemento na primeira célula, o segundo na segunda e assim por diante. A pilha funciona exatamente como uma lista, mas elementos podem ser inseridos e removidos somente pelo fim da lista (FEOFILOFF, 1998). Quando uma aceleração é captada pelo sensor, o arduino armazena essa aceleração em uma célula da lista, sendo que, quando for preciso utilizar essa aceleração para algum cálculo, é precisos somente acessar esse valor de aceleração na pilha. 4.3.3 Cálculo da Velocidade e Força Duas funções foram criadas para cálculo da velocidade da raquete e da força em cada instante de aceleração. Primeiramente, o software trata de converter as acelerações captadas em acelerações concretas (de um valor qualquer que o acelerômetro interpreta para m/²) e então realiza o cálculo para a velocidade e força. 33 A velocidade pode ser encontrada utilizando todas as acelerações armazenadas na pilha. O cálculo para a velocidade implementado na função é: V = ∑ (ai + ai-1) . t / 2, onde i varia de zero até n. Sendo: ai, Aceleração no tempo t (m/s²). ai-1, Aceleração no tempo t-1 (m/s²). t, Intervalo de tempo entre as duas acelerações (s, segundos). O programa percorre a pilha encontrando todas as acelerações armazenadas e fazendo o cálculo para a velocidade. São encontradas todas as acelerações nos três eixos e mostrado em um gráfico da aceleração pelo intervalo de tempo total. A velocidade resultante do movimento também é mostrada após o termino dos cálculos, considerando cada influencia que as acelerações obtiveram na raquete. A força pode ser determinada em cada instante de tempo. Logo em cada instante de tempo que o acelerômetro adquiriu acelerações, é possível determinar a força em cada em cada eixo, obtendo assim uma força instantânea para cada aceleração. Ela pode ser encontrada pela fórmula a seguir: F = (ai + ai-1) . m / 2, onde i varia de zero até n. Sendo: ai, Aceleração no tempo t (m/s²). ai-1, Aceleração no tempo t-1 (m/s²) m, A massa da raquete (Kg, quilogramas). Percorrendo a pilha inteira novamente, é possível calcular a força aplicada na raquete, nos três eixos (X, Y e Z), e apresentar essa força em um gráfico representando a variação da força no movimento. A massa é determinada pela soma da massa da raquete e do arduino com o acelerômetro. 34 4.3.4 Dicionário de Funções A seguir será apresentada uma lista de todas as funções que o software possui e uma visão geral das mesmas. Setup: Função própria do Arduino que inicializa o acelerômetro e as bibliotecas usadas. Write Reg: Função que escreve em um registrador. Read Reg: Função que lê um registrador. Apagar Interrupt: Define o Data Ready como inativo para ser usado novamente. Incluir Fim: Inclui em uma célula da pilha as acelerações captadas nos três eixos. Conversor: Converte as acelerações em valores mais concretos. Velocidade: Calcula a velocidade usando as acelerações da pilha. Força: Calcula a força do movimento. Loop: Mantém o programa funcionando até o desligamento geral e chama as outras funções. Também é responsável por mostrar os valores obtidos. 4.4 HARDWARE É listado abaixo os componentes utilizados no projeto mais detalhadamente. 4.4.1 Arduino Duemilanove O arduino duemilanove (Figura 10) é um microcontrolador baseado na tecnologia ATMega 328. Possui 14 pinos digitais e 6 pinos analógicos. Contém um cristal oscilador de 16MHz, conector USB e botão de reset (Arduino). Requisitos do arduino: 35 Microcontrolador Duemilanove AT328 Tensão de Operação 5 Volts Tensão Secundaria 3,3 Volts Tensão de Entrada (recomendado) 7-12 Volts Tensão de Entrada (limite) 6-20 Volts Memória Flash 32 KB SRam 2 KB EEPROM 1 KB Velocidade Clock 16 MHz Tabela 2. Requisitos do arduino (ARDUINO, 2010). É possível observar na Tabela 2 que o arduino possui uma tensão secundaria de 3,3 Volts. Essa tensão foi utilizada para alimentar o acelerômetro, já que o mesmo não suportaria uma tensão maior que 3,6 Volts (ver adiante). O programa não obteve nenhum problema em quesito de memória, visto que o código escrito não é muito grande. O arduino também suporta uma conexão externa de tensão sem podendo ultrapassar o limite de 20 Volts. O projeto não utilizou nenhuma conexão externa e usou a tensão do computador pela conexão USB. Para o funcionamento do protocolo I²C, é preciso utilizar os pinos analógicos 4 e 5. O pino 4 para a conexão data (SDA) e o pino 5 para o clock (SCL). O projeto também utilizou o pino 10 digital do arduino para a conexão Data Ready do acelerômetro. Quando o pino 10 do arduino estava em high (ou ativo) o acelerômetro microcontrolador. enviava as acelerações captadas para o 36 Figura 10. Arduino Duemilanove (ARDUINO, 2010). A escolha pelo arduino duemilanove se deu principalmente pela facilidade em adquiri-lo e por possuir uma conexão USB. 4.4.2 Acelerômetro MMA 7456L É um acelerômetro capacitivo (já descrito no tópico 3.1.2 Acelerômetros) digital, que funciona por dois protocolos de comunicação SPI e I²C. Possui 3 eixos e auto teste para o eixo Z. Possui uma sensibilidade de 2, 4 e 8 gravidades e opera com uma tensão variando entre 2,4 e 3,6 volts. O acelerômetro também possui um sistema de detecção de pulso para um ou dois pulsos de reconhecimento (FREESCALE, 2009). O acelerômetro é soldado em uma placa com 14 pinos com espaçamento padrão para facilitar a conexão externa (como protoboard ou placa furada). É possível observar na Figura 11 o esquemático do acelerômetro com seus respectivos pinos e suas funções. O esquema mostra o acelerômetro visto por baixo da placa, chamado de top view. O pino 14 é mostrado como o primeiro pino em uma sequência de 7 pinos no lado esquerdo vistos de cima para baixo no esquemático (pinos 14 – 37 6). O pino 7 é o primeiro pino do lado direito no esquemático visto de baixo para cima (pinos 7 – 13). Figura 11. Top View do acelerômetro MMA 7456L (FREESCALE, 2009). Pino 1: DVDD_IO. Entrada de tensão digital. Pinos 2 e 5: GND. Conexão com o Terra. Pinos 3, 10 e 11: N/C. Sem conexão interna, liga junto com o terra ou não liga. Pino 4: IADDR0. Endereço do Bit 0 no I²C. Pino 6: AVDD. Entrada de tensão analógica. Pino 7: CS. Define qual protocolo de comunicação será usado, liga em zero (0, ou terra) para SPI ou liga em um (1, ou 5 volts) para I²C. Pino 8: INT1/DRDY. Primeiro Interrupt do acelerômetro e funciona como Data Ready. Pino 9: INT2. Segundo Interrupt do acelerômetro. Pino 12: SDO. Serial Data de saída do SPI. Pino 13: SDA/SDI/SDO. Entrada e saída do Serial Data no I²C. Entrada do Serial Data no SPI. Saída da interface 3 Wire no Serial Data (SDO). 38 Pino 14: SCL/SPC. Entrada e saída do Serial Clock no I²C e Serial Clock no SPI. O projeto utilizou somente os pinos 1 e 6 ligados na tensão de 3,3 Volts assim como o pino 7 (para habilitar o protocolo I²C). Os pinos 2 e 5 foram conectados no terra e o pino 8 foi ligado no pino 10 digital do arduino. Os pinos 13 e 14 foram ligados respectivamente nos pinos 4 e 5 analógicos do microcontrolador. 4.4.3 Circuito Impresso O acelerômetro e o arduino foram colocados em uma raquete de tênis. Para isso, é preciso desenvolver uma placa permanente ou denominada Shield (placas encaixadas diretamente nos pinos do arduino). Com o shield pronto, o arduino e o acelerômetro puderam ser acoplados na raquete. A única ligação entre a raquete e o computador foi o cabo serial, que transmitia as informações para o mesmo. Para a confecção da placa foi utilizada uma placa de fenolite, onde é possível desenhar o circuito desejado. Com uma caneta de tinta permanente e alguns moldes feitos a mão, o circuito inteiro foi desenhado na placa, medindo com precisão cada ligação. Utilizando de uma caixa de plástico, a placa foi mergulhada junto com uma solução de percloreto de ferro, utilizada para corroer a parte cobreada da placa e manter somente o circuito desenhado. Após a corrosão, foi utilizado um furador de placas especial para placas de fenolite e os dispositivos (como soquete para o acelerômetro e alguns pinos e cabos) foram soldados na mesma. 39 5. CONCLUSÃO Como resultado de 10 semanas desenvolvendo este trabalho, apresentamos o artefato do presente projeto e a respectiva monografia. Neste projeto foi necessário o entendimento de assuntos relacionados a programação e eletrônica, além de aplicação direta de equações físicas e matemáticas. Este aprendizado ampliou nosso conhecimento sobre assuntos referentes a sensores como o uso de um acelerômetro e de programação e utilização de microcontroladores, com o uso do arduino. 5.1 CONCLUSÃO DO TRABALHO Podemos ver, diante dos resultados obtidos, que concluímos alguns dos nossos objetivos, como o de integrar o acelerômetro e o arduino conseguindo assim a captação da aceleração mostrando na tela do computador. Mas devido a muitas dificuldades que tivemos durante o projeto, e até mesmo a inexperiência da equipe, não obtivemos o resultado que gostaríamos de ter. O projeto atrasou ao planejado devido a falhas técnicas que tivemos. A primeira das falhas foi erros de ligação, e também mal contato de cabos entre o arduino e o acelerômetro. Estes problemas foram resolvidos com o uso de um shield (placa criada especialmente para conectar um dispositivo ao arduino). Ainda tivemos problemas com o cabo serial que fazia a comunicação entre o arduino e o computador. Outro problema que tivemos foi o ruído no sinal que o acelerômetro enviava para o arduino, este ruído gerava grandes variações na captação da aceleração, mesmo com o acelerômetro parado. Testamos colocar capacitores em paralelo no circuito, mas não obtivemos resultados visíveis de mudança, então esse problema persistiu. Apesar dos problemas, obtivemos um resultado satisfatório no entendimento e funcionamento do acelerômetro. O aprendizado sobre o protocolo de comunicação utilizado (que pode servir para muitos dispositivos digitais), assim como leitura e interpretação de datasheet de sensores. Também obtivemos um grande aprendizado na área de programação para 40 implementação do protocolo, bem como aprendizado sobre estruturas de dados utilizados no programa. A monografia apresenta um protótipo e serve como base para projetos muito maiores. A ideia inicial continua valendo, sendo ela otimizar os treinos de tenistas conseguindo captar a velocidade e força da raquete no momento da batida. O projeto serviu para um grande aprendizado. Além do aprendizado em questões de eletrônica, programação, física, cálculo, tivemos também aprendizado na questão de organização e trabalho em equipe. Acreditamos que mesmo o projeto não funcionando perfeitamente, obtivemos sucesso perante ao escopo da matéria devido ao conhecimento adquirido. 5.2 TRABALHOS FUTUROS Como o projeto pode ser continuado, é importante frisar algumas propostas para trabalhos futuros. 1) Corrigir o ruído existente no sistema, entre as conexões do acelerômetro e do arduino. O ruído existente se deu basicamente no circuito interno do acelerômetro e é necessário um estudo mais aprofundado sobre o assunto. 2) Criar algum sistema para conseguir captar a velocidade e a força aplicada em uma bolinha de tênis durante o treino. O principio do projeto era de tentar captar a velocidade da bolinha de tênis, mas tivemos muitas dificuldades no desenvolvimento, então a ideia ficou para um projeto futuro. 3) Utilizar um sistema de comunicação sem fio entre o arduino e o computador. O cabo serial acaba por atrapalhar um pouco a mobilidade das batidas, mas é necessário um estudo muito mais aprofundado sobre o assunto por sistemas de comunicação sem fio utilizarem outros protocolos de comunicação. Outras propostas poderão ser adotadas. O projeto está em etapa preliminar e poderá ser continuado. 41 6. BIBLIOGRAFIA ARDUINO. Disponível em: <http://www.arduino.cc/> Acesso em: 15 Nov 2011. ARDUINO BRASIL. Protocolo I2C, uma Breve Descrição! Disponível em: <http://arduinobrasil.blogspot.com/2010/01/protocolo-i2c-uma-brevedescricao.html> Acesso em: 15 Nov 2011. Confederação Brasileira de Tênis. A origem do Tênis a partir de Jeu de Paume. Disponível em: <http://cbtenis.uol.com.br/Default.aspx?idPagina=ZQzLNhcDDI0=> Acesso em: 22 Set 2011. DIAS FILHO, Roberto Paulo. Protocolo de Comunicação I2C. Disponível em: <http://www.eletronica.org/modules.php?name=News&file=print&sid=13> Acesso em: 26 Set 2011. FEOFILOFF, Paulo. Lista Encadeada. Disponível em: <http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html> Acesso em: 14 Nov 2011. FIGUEIREDO, Ligia; GAFANIZ, Ana; LOPES, Gustavo; PEREIRA, Rúben. Aplicações de Acelerômetro. Disponível em: <http://nebm.ist.utl.pt/repositorio/download/375> Acesso em: 27 Set 2011. FREESCALE SEMICONDUCTOR. MMA7456L: Technical Data. Datasheet, 2009. GARCIA, Renato. Criando Talentos – Treino é muito mais que jogo. Disponível em: <http://www.tenisnews.com.br/modules.php?name=News&file=article&sid=1941> Acesso em: 23 Set 2011. JUNIOR, Franciso R.; SOARES, Paulo A. de T.; FERRARO, Nicolau G. Fundamentos da Física 1: Mecânica. 8 edição. São Paulo: Editora Moderna, 2005. NETTO, Luiz Ferraz. Pontes de Wheatstone. Disponível em: <http://www.feiradeciencias.com.br/sala12/12_13.asp> Acesso em: 18 Out 2011. NUSSENZVEIG, Herch MOYSES. Curso de Física Básica vol.: Mecânica. 4ª Edição. São Paulo: Edgard Blucher, 2002. PRESSMAN, Roger S. Engenharia de Software. 6a Edição. São Paulo: McGraw-Hill, 2006. 42 QUADRA TÊNIS. Historia do Tênis. Disponível em: <http://quadratenis.com.br/historia-do-tenis> Acesso em: 22 Set 2011. RICARTE, Ivan L. M. Estrutura de Dados. Disponível em: <http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node10.html> Acesso em: 11 Dez 2011. SERWAY, Raymond. A.; JR., John W. J. Princípios de Física vol. 1: Mecânica Clássica. 3ª Edição. São Paulo: Cengage Learning, 2008. SUYAMA, Maria. Protocolos de Comunicações. Disponível em: <http://www.criarweb.com/artigos/533.php> Acesso em: 14 Nov 2011. TOCCI, Ronald J.; WIDMER, Neal S.; MOSS, Gregory L. Sistemas Digitais 10°Edição. São Paulo: Pearson, 2008. WERNECK, Marcelo Martins. Transdutores e Interfaces, Editora LTC, 1996.