32
UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO MURILO SOARES ALVES RENAN FERNANDES TELES NÍVEL DIGITAL RELATÓRIO FINAL CURITIBA 2013

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ …paginapessoal.utfpr.edu.br/msergio/portuguese/ensino-de-fisica/... · Podemos citar que este modelo se baseia na Lei de Hooke e na

Embed Size (px)

Citation preview

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁGRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO

MURILO SOARES ALVESRENAN FERNANDES TELES

NÍVEL DIGITAL

RELATÓRIO FINAL

CURITIBA

2013

MURILO SOARES ALVESRENAN FERNANDES TELES

NÍVEL DIGITAL

Relatório final apresentado como requisito parcialpara a obtenção de aprovação na disciplina de Ofici-nas de Integração II do curso de Engenheria de Com-putação.

Orientador: Juliano Mourão Vieira

CURITIBA

2013

Dedicamos este relatório a todos os nossos apoiadores e envolvidos noprojeto, que nos impulsionaram e contribuiram direta ou indiretamenteno desenvolvimento deste trabalho.

AGRADECIMENTOS

Agradecimos antes de tudo aos professores Hugo Vieira e Mário Sérgio Freitas por

ministrarem a disciplina de Oficinas de Integração II com maestria. Agradecemos também a

colaboração do projessor Juliano Mourão Vieira que se dispôs a sanar as eventuais dúvidas e

dificuldades. Agradecemos ainda a todos os demais que puderam compartilhar deste projeto.

Nada disto teria sido possível sem as opiniões, ajudas e apoio de todos os envolvidos.

A tarefa não é tanto ver aquilo que ninguém viu, mas pensar o queninguém ainda pensou sobre aquilo que todo mundo vê.

(Arthur Schopenhauer).

RESUMO

S. ALVES, Murilo; F. TELES, Renan. NÍVEL DIGITAL. 31 f. Relatório final – Graduação emEngenharia de Computação, Universidade Tecnológica Federal do Paraná. Curitiba, 2013.

A caminhada para a digitalização tem dado passos largos. Mesmo simples objetos estão acom-panhando o progresso tecnólogico. Este projeto visa desenvolver um nível digital, construindo-o desde o início e procurando resgatar as vantagens sobre o processo mecânico.

A motivação encontrada para desenvolver este projeto se deu pela curiosidade de como umacelerômetro trabalha em conjunto de um microcontrolador. Esta ideia inicial levou os alunos àescolha do projeto e à busca de conhecimento necessário para satisfazer a conclusão do trabalho.

Os componentes mais importantes utilizados no projeto foram um acelerômetro, um arduino euma tela de LCD. De maneira sucinta, o arduino controla os dados que recebe do acelerômetroe envia para a tela de maneira gráfica ou númerica.

Por fim, o trabalho cumpre a sua premissa: Acrescentar um conhecimento aos alunos paraassim ser construído um dispositivo prático, realizando uma ligação do aluno com as matériasjá cursadas.

Palavras-chave: Nível Digital, Arduíno, LCD, Sensor de Posição, Acelerômetro

LISTA DE FIGURAS

–FIGURA 1 Diagrama de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13–FIGURA 2 Arduíno Uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14–FIGURA 3 Acelerômetro Capacitivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16–FIGURA 4 Acelerômetro Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17–FIGURA 5 Ponte de Wheatstone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18–FIGURA 6 LCD Nokia 5110 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19–FIGURA 7 Especificações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20–FIGURA 8 Ligação com o Arduíno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20–FIGURA 9 Placa Impressa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21–FIGURA 10 Protocolo I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23–FIGURA 11 Projeto Em Fase Intermediária . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

LISTA DE TABELAS

–TABELA 1 Especificações do Arduino Uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15–TABELA 2 Média de Gastos do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

LISTA DE SIGLAS

LCD Liquid Crystal DisplayIDE Integrated Development EnvironmentPWM Pulse Width ModulationICSP In Circuit Serial ProgrammingVCC Collector Supply VoltageGND GroundSCE Serial Chip EnableRST ResetD/C Data/CommandSCLK Serial Clock LineLED Light-Emitting DiodeDN(MOSI) Serial Data InputI2C Inter ICSDA Serial DataSCL Serial ClockLSB Least Significant BitACK Acknowledge

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101.1 MOTIVAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111.2.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 ESPECIFICAÇÕES DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1 COMPONENTES DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133.1.1 Arduíno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143.1.2 Acelerômetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153.1.2.1 Acelerômetro Capacitivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163.1.2.2 Acelerômetro Piezoelétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173.1.2.3 Acelerômetro Piezoresistivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.2.4 Acelerômetro Micro Eletro-Mecânico (MEMS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183.1.3 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193.1.4 Placa Impressa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213.2 PROTOCOLO I2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 223.2.1 Comunicação de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 233.2.1.1 LCD - Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2.1.2 Acelerômetro - Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2.1.3 Botões - Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 243.2.1.4 Computador - Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.1 FUNDAMENTOS DO PROJETO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.2 PASSOS SEGUIDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.3 FUNÇÃO GERAL DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.4 SOFTWARES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 274.5 DESPESAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.1 RESULTADOS OBTIDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.2 DIFICULDADES DO PROJETO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.3 TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

10

1 INTRODUÇÃO

A medição do nivelamento de superfícies é utilizado em diversos campos, desde casei-

ros até em grandes obras. Porém os materiais disponíveis para aquisição no mercado de maneira

que não sejam demasiadamente custosos e que podem fornecer a medida de inclinação de su-

perfícies, podem muitas vezes serem classificados como ultrapassados, sob o ponto de vista

tecnológico. Objetos como transferidor, ou ainda uma régua de nível, podem não apresentar

demasiada praticidade e nem mesmo a precisão requerida em diversas situações que necessitam

tal medição.

A ideia deste projeto é exatamente construir um nível - um objeto que possa medir a

inclinação com maior precisão e facilidade de uso. Para isto, temos de sair do mundo mecânico

e passar ao lado eletrônico, pois quando comparados, o segundo apresenta rapidez e precisão

disparadamente melhores, e muitas vezes tamanho e custos também reduzidos, além da possi-

bilidade de ter uma maior facilidade de manuseio, quando previamente programado a fim de

simplificar o uso, expandindo o campo de usuários.

Desta forma, o desenvolvimento de um nível digital pode ter uma utilidade interessante

em uma gama de situações, sem pecar nos quesitos supra mencionados. Para tal, propomos a

utilização da plataforma livre Arduíno (ARDUINO, 2013), pela gama de utilidades que se pode

realizar com este e possíveis modificações caso alguém se proponha a trabalhar futuramente no

projeto, bem como a utilização de um sensor de posição, no caso um acelerômetro MMA7660.

Por fim, uma tela de LCD para mostrar de forma gráfica e numérica esta variação que pretende-

se capturar, da qual a escolha pode ser manuseada através de botões.

11

1.1 MOTIVAÇÃO

Este projeto nos impulsiona a ir mais à fundo no mundo eletrônico digital, da qual

tem grande importância para o desenvolvimento profissional e até mesmo pessoal, devido ao

conhecimento adquirido durante a construção do objeto.

1.2 OBJETIVOS

1.2.1 OBJETIVO GERAL

Construir um nível eletrônico usando acelerômetro e microcontrolador que atenda aos

requesitos dos possíveis usuários, além de nos familiarizar com os diversos componentes e o

trabalho prático necessário durante o desenvolvimento deste projeto.

1.2.2 OBJETIVOS ESPECÍFICOS

• Implementar o protocolo I2C no Arduíno a fim de comunicar com o acelerômetro.

• Implementar a interface gráfica e de texto para o LCD.

• Tornar o dispositivo móvel

• Capturar através de sensores a variação de posição em relação ao zero em que se encontra

o objeto.

12

2 FUNDAMENTAÇÃO TEÓRICA

Segundo a primeira lei de Newton: todo corpo que está em repouso tende a continuar

em repouso até que alguma força externa haja sobre ele. A segunda lei de Newton, por sua vez,

define a força aplicada como o produto da massa pela sua aceleração. Uma vez que se consiga

calcular a aceleração e possua o peso do objeto, é possível determinar a força aplicada sobre

ele.

O acelerômetro é um instrumento capaz de medir a aceleração sobre o objeto. Ao invés

de posicionar vários dinamômetros em diferentes pontos de um objeto, apenas um acelerômetro

é capaz de calcular qualquer força exercida sobre ele.

Para calcular a inclinação, a aceleração da gravidade age sobre o acelerômetro e, con-

forme a atitude do mesmo no espaço, o vetor de aceleração da gravidade tem suas projeções

aumentadas ou diminuídas em cada eixo x, y e z. Com estas projeções consegue ser calculada

a inclinação do objeto.

13

3 ESPECIFICAÇÕES DO SISTEMA

3.1 COMPONENTES DO SISTEMA

O artefato é, em suma, constituído pelos seguintes componentes:

• Central de processamento Arduíno

• Tela de LCD

• Acelerômetro digital

• Um cabo Grove para conexão do acelerômetro

• Botões para interfaceamento

• Resistores, jumpers, pinos para conexão, etc.

Podemos ver as conexões de acordo com o diagrama abaixo:

Figura 1: Diagrama de blocos explicitando as conexões

Fonte: Própria

14

3.1.1 ARDUÍNO

O Arduíno é uma plataforma em código aberto objetivando o fácil manuseio de hard-

ware e de software. Entre as mais variadas funções que pode exercer, ele recebe informações

do meio através da comunicação com sensores, pode controlar motores e luzes, dentre outras

aplicações. O ambiente de desenvolvimento é denominado Arduíno IDE, baseado na linguagem

Processing que por sua vez é baseada em Java. O microcontrolador da plataforma é programado

na linguagem de programação Arduino, baseada em Wiring (ARDUINO, 2013). É possível

expandir para diversas funcionalidades através dos shields1 existentes, que são acoplados aos

conectores da placa.

Figura 2: Placa do Arduíno modelo Uno

Fonte: Página do Arduíno2

O modelo utilizado foi o Arduino Uno como ilustrado na figura acima, devido à fle-

xibilidade em sua utilização e a comunicação em USB. Nesta versão, o chip para conversão

USB-Serial utilizado é o ATMega8U2 e o microcontrolador é o ATmega328 (ARDUINO. . . ,

2013a). Contém um total de 20 pinos, dentre os quais 14 são de entradas/saídas digitais (destas,

6 possuem controle de saída PWM) e 6 entradas analógicas, um cristal oscilador de 16MHz,

um conector externo para alimentação, conectores ICSP e um botão de reset.

1São placas que podem ser conectadas sobre o Arduíno expandindo assim suas capacidades de utilização

15

Um resumo das especificações (ARDUINO. . . , 2013b) pode ser encontrado na tabela

1:

Microcontrolador ATmega328Tensão de operação 5VTensão de entrada (recomendada) 7-12VTensão de entrada (limites) 6-20VPinos de I/O Digitais 14 (6 deles com saída PWM)Pinos Analógicos 6Corrente CC por I/O Pino 40 mACorrente do Pino 3.3V 50 mAMemória Flash 32 KB (ATmega328) 0.5 KB p/ BootloaderSRAM 2 KB (ATmega328)EEPROM 1 KB (ATmega328)Velocidade do Clock 16 MHz

Tabela 1: Especificações do Arduino Uno

3.1.2 ACELERÔMETRO

De uma maneira geral, os acelerômetros são sensores ou transdutores3 que tornam

possível resgatar a aceleração e por consequência, a velocidade e localização do acelerômetro. É

possível obter essas informações nas três dimensões, o que o torna um objeto extremamente útil

em diversas aplicações eletrônicas, uma vez que pode-se tirar dele ainda a inclinação, rotação,

colisão, etc. A magnitude da aceleração aplicada ao corpo é traduzida por sinais elétricos e

processada por circuitos externos. Existem diversos tipos de acelerômetros, cada qual com suas

vantagens e desvantagens.

3Dispositivo que realiza a conversão de uma grandeza em outra. No caso, traduz uma informação não-elétrica(aceleração) para uma informação elétrica.

16

3.1.2.1 ACELERÔMETRO CAPACITIVO

Neste projeto foram utilizados acelerômetros capacitivos, assim denominados pois va-

riam uma capacitância em resposta à aceleração, a que são submetidos o sinal de saída do

circuito. Estes acelerômetros possuem um capacitor entre a massa e a estrutura de suporte,

como está na figura 2, sendo sensíveis a mudanças na capacitância.

Figura 3: Esquema interno de um acelerômetro capacitivo

Fonte: Página da Universidade Técnica de Lisboa4

Havendo uma aceleração e variando o espaço entre a placa fixa e a móvel do capacitor,

varia-se a capacitância e e gera-se um sinal de saída do circuito. Capacitores são componentes

elétricos que armazenam carga elétrica, geralmente formado por duas placas paralelas. A capa-

citância é dada por C = ε · Ad onde ε é uma constante varia de acordo com o material, A é a área

das placas e d é a distância entre elas.

Podemos citar que este modelo se baseia na Lei de Hooke e na Segunda Lei de Newton,

uma vez que apresentam três sistemas que incluem: um sistema massa-mola, um para medição

do deslocamento e um circuito de condicionamento de sinal. Medem tanto a aceleração estática

- gerada por uma força gravitacional, retratando o ângulo de inclinação a que o dispositivo está,

quanto dinâmica, gerada pelas vibrações dos movimentos permitindo medir a velocidade e a

direção da qual o dispositivo está se movendo.

17

O modelo utilizado foi o SEN04051P da (SEEED. . . , 2013), que é um acelerômetro

digital com os três eixos, e se utiliza de uma interface (GROVE. . . , 2013) de quatro pinos, como

mostra a figura 3:

Figura 4: Acelerômetro digital grove utilizado no projeto

Fonte: Página da SEEED Studio 5

3.1.2.2 ACELERÔMETRO PIEZOELÉTRICO

Estes se utilizam de um cristal piezoelétrico(MECATRONICA, 2013) que podem ser

cristais tanto sintéticos como naturais que produzem carga quando são expandidos ou comprimi-

dos. Estes cristais são unidos à massa e quando há variação na aceleração, sofrem compressão

em certo eixo e seguem a lei da inércia, gerando cargas elétricas, seguindo a lei de Newton

F = m ·a.

18

3.1.2.3 ACELERÔMETRO PIEZORESISTIVO

Funcionando praticamente da mesma maneira do modelo anterior, a diferença neste é

que varia-se a resistência (detectada por uma ponte de Wheatstone, mostrada na figura à seguir)

de acordo com a força exercida pela massa, para tanto possuindo um componente piezoresistivo

ao invés do cristal piezoelétrico (ACELEROMETROS, 2013).

Figura 5: Esquema de uma Ponte de Wheatstone

Fonte: Blog Os Fundamentos da Física6

3.1.2.4 ACELERÔMETRO MICRO ELETRO-MECÂNICO (MEMS)

Este tipo de acelerômetro é atualmente o mais utilizado. Através das propriedades

mecânicas do silício torna-se possível a detecção da aceleração e vibração em qualquer dos

três eixos. Existem estruturas em forma de pente, com dentes móveis e fixos. Medindo-se o

deslocamento dos elementos móveis associadas a cada eixo é possível obter então a aceleração,

e este movimento é convertido então em sinal digital ou analógico. Estes sensores são de baixo

custo, compactos e bastante sensíveis (ACELEROMETROS, 2013). O modelo utilizado foi, de

acordo com as vantagens citadas e a disponibilidade, o MEMS capacitivo.

19

3.1.3 LCD

A tela de LCD utilizada é o Nokia 5110, sendo esta uma tela de LCD gráfica básica,

tendo como motivo de seu desenvolvimento para uso nos primeiros celulares de mesma marca.

Ela permaneceu com vasto uso em projetos devido à grande diversidade de aplicações. A tela

é composta de uma matriz de 48 linhas e 84 colunas, ou ainda 48× 84 pixels(LCD. . . , 2013),

com oito terminais:

1. VCC - Suprimento de energia

2. GND - Ground

3. SCE - Serial Chip Enable

4. RST - Reset

5. D/C - Data/Command

6. DN<MOSI> (atualmente SDIN) - Serial Data Input

7. SCLK - Serial Clock Line

8. LED - Light-Emitting Diode

Figura 6: Tela de LCD utilizada

Fonte: Página da Hobby Eletronics7

As funções dos pinos são: VCC é a alimentação positiva; GND o terra (ou negativo);

SCE é o pino que habilita a passagem de dados e é ativo em sinal baixo; RST é o sinal que

reinicia o dispositivo; D/C é a entrada para selecionar entre endereço e dado; DN(MOSI) ou

SDIN é o pino de entrada de dados; SCLK faz a entrada de clock que sincronizará o sinal.

Este modelo usa um controlador PCD8544, que consiste de um CMOS de baixo consumo que

comanda o display de 48× 84. A comunicação com microcontroladores é feita através de um

20

barramento serial. Um único chip interno contém todas as funções necessárias para o display.

Podemos encontrar estas e demais informações na figura 7:

Figura 7: Especificações da tela de LCD usada no projeto

Fonte: Página da Elec Freaks8

As conexões feitas entre LCD e Arduíno foram as mostradas no esquema da figura 8:

Figura 8: Esquemático na qual foram baseadas as conexões entre arduíno e a tela de LCD

Fonte: Página da Fritzing Beta9

21

3.1.4 PLACA IMPRESSA

Após a confecção do circuito na protoboard, a ideia de repassar o circuito para uma

placa de circuito impressao caseira foi proposta. O esquemático da placa impressa é exposta na

Figura 9 e foi usado o software Eagle para a elaboração do desenho da placa.

Figura 9: Placa impressa desenvolvida pelo grupo

Fonte: Própria

22

Os itens usados para fabricação da placa:

• 1 garrafa de percloreto de ferro;

• 1 placa de fenolite;

• 1 caneta permanente;

• 1 folha de papel colché;

• 1 furador de placas;

• 1 ferro de solta e estanho

O método de fabricação da placa pode ser encontrado em diversos sites especializados,

devido os diversos modos de fabricação existe.

3.2 PROTOCOLO I2C

O protocolo de comunicação I2C (batizado assim pela empresa Philips - uma abrevi-

ação de Inter IC) é formado por quatro linhas físicas, que incluem VDD e GND, e os outros

dois como base para a comunicação de dados e transmissão de sinais. Estes dois são: SDA ou

linha serial de dados, da qual envia/recebe dados (é bidirecional) e SCL ou linha serial de clock

usada para sincronizar a comunicação. A simplicidade e eficácia deste protocolo foi determi-

nante para a grande aceitação deste protocolo no mercado. O barramento I2C permite trabalhar,

num mesmo sistema, com diversos circuitos dedicados utilizando as mesmas linhas de infor-

mação, selecionando o circuito ao qual deseja-se comunicar e assim assegurando a chegada

segura das mensagens. A linha de clock SCL é controlada pelo mestre, geralmente com maior

capacidade de processamento, e os que recebem estes sinais são os escravos. Estes últimos

têm internamente um endereço cada que os identifica, de maneira que quando o mestre precisa

comunicar-se, envia um endereço pelo barramento e caso seja reconhecido, prossegue com a

transferência de dados. Vale ressaltar que este barramento é do tipo multimestre, ou seja, pode

haver mais de um mestre (dispositivo de controle) porém somente um deles pode estar ativo

durante uma comunicação, caso contrário haverá colisão de dados.

23

Figura 10: Esquema de comunicações I2C

Fonte: http://www.pessoal.utfpr.edu.br/msergio/Monog-10-2-Teclado-eletronico.pdf

Conforme mostrado na figura 10, para iniciar a comunicação entre mestre e escravo,

o mestre deve gerar uma condição de partida que indica que o barramento será ocupado e

para tanto envia 1 bit de inicialização denominado Start. Em seguida envia um pacote de 8

bits (1 byte) contendo o endereço do escravo ao qual quer se comunicar, composto pelos 7

bits mais significativos, junto do oitavo bit (LSB) que identifica se a operação é de escrita ou

leitura. Caso o escravo determinado por este endereço receba esta mensagem, ele retorna um

bit de reconhecimento avisando ao mestre que recebeu os dados, denominado acknowledge bit,

ou simplesmente ACK. Assim o mestre pode começar a enviar os dados em pacotes de 8 bits,

sempre intercalados por um bit ACK. Ao término da comunicação, o mestre envia uma condição

de parada, um bit chamado Stop bit (I2C, 2013).

3.2.1 COMUNICAÇÃO DE DADOS

No projeto proposto, diversas são as comunicações entre os dispositivos existentes:

LCD - arduino, arduino - acelerômetro e computador - arduino. Nesta seção será exposto tais

comunicações, relacionando-as com o software implementado. O projeto desenvolvido até en-

tão pode ser conferido na figura 11:

Figura 11: Objeto construído antes de ser finalizado

Fonte: Própria

24

3.2.1.1 LCD - ARDUINO

A tela de LCD usada no projeto possui oito pinos de ligação. Destes apenas cinco

pinos são usados para comunicação de dados, os restantes são a entrada de tensão, o terra e o

controle de iluminação das luzes de fundo. Os pinos de comunicação de dados são conectados

ao arduino por meio de portas digitais. No caso deste projeto, foram setados da porta oito à doze.

Todavia, de nada adianta apenas a conexão dos pinos se não for programada a comunicação dos

pinos citados diretamente no software.

Neste caso, ao escrever o código que será enviado ao arduino, o trecho abaixo exem-

plifica como foram inseridos os pinos no código:

"Adafruit_PCD8544 display = Adafruit_PCD8544(8, 9, 10, 11, 12);"

Os pinos referem-se respectivamente ao CLK, SDIN, D/C, SCE, RST. O Adafruit_PCD8544

é uma biblioteca adicionada feita para o reconhecimento do visor de LCD usado, assim declara-

se o display como um objeto de Adafruit e direciona-se os pinos digitais que farão a transmissão

de dados (ADAFRUIT. . . , 2013).

3.2.1.2 ACELERÔMETRO - ARDUINO

O acelerômetro por sua vez se comunica com o arduino através de um protocolo I2C,

como já explicado na seção 3.2. Entretanto, para essa comunicação ser efetiva foi necessário

incluir a biblioteca wire no programa (WIRE. . . , 2013). Esta biblioteca tem como objetivo

principal instaurar e reconhecer o protocolo I2C para efetuar a comunicação de dados com

sucesso entre mestre e escravo.

3.2.1.3 BOTÕES - ARDUINO

Os botões possuem conexão com o arduino por meio de portas digitais. Ao fazer a

conexão do botão, necessita-se a declaração da porta digital conectada, do estado do botão e

se o pino estará enviando ou recebendo dados. Estes métodos são feitos através de declarações

no próprio código do programa. O estado do botão tem por finalidade receber e ler os dados

enviados pelo botão.

25

3.2.1.4 COMPUTADOR - ARDUINO

O computador foi usado para escrever o software em que foi feito o programa do

projeto. Uma vez que o código era escrito no computador, a cada nova mudança, fazía-se o

upload do código corrigido para o microcontrolador do arduino. Esta comunicação entre o

arduino e o computador é feita via porta serial (USB - Universal Serial Bus). O USB é um

tipo de conexão criada com o intuito de facilitar o uso de um periférico no computador sem a

necessidade de desligá-lo.

26

4 METODOLOGIA

4.1 FUNDAMENTOS DO PROJETO

O sistema proposto consiste no desenvolvimento de um aparato digital que capta a in-

clinação de uma superfície. Esta captura é feita através de um acelerômetro. Os componentes

principais deste projeto são: plataforma Arduíno com microcontrolador ATmega328, um ace-

lerômetro MMA7660 com sistema Grove da Seeed Studio, um computador com entrada USB

ou a utilização de pilhas como fonte externa de alimentação.

No que tange ao hardware do projeto, a placa Arduíno contém o microcontrolador

mestre, ou seja, que fará o controle de todos os demais circuitos integrados no sistema. Estes

são compostos da tela de LCD e do acelerômetro, este último se comunicando pelos sinais de

SCL e SDA - Serial Clock Line para controlar a sincronia e Serial Data Line para a transmissão

de dados, respectivamente. O acelerômetro possui uma referência base (gravidade) que a partir

desta, percebe a inclinação assim que ligado.

4.2 PASSOS SEGUIDOS

Com o conhecimento supérfluo de acordo com as necessidades do grupo sobre o mate-

rial que dispomos - Arduíno, acelerômetro, LCD - bem como insuficiência em conhecimentos

sobre a física envolvida, sobre como trabalha o mundo digital, dentre outros, nos dispomos pri-

meiramente a pesquisar e abranger todos os assuntos antes de ir diretamente à construção do

objeto e assim recolher conhecimentos o bastante afim de minimizar os problemas relacionados.

Com diversos materiais de apoio, pudemos então iniciar a construção física do traba-

lho, que abrangeu partes como a soldagem de pinos, a montagem em cima da protoboard e

junção de cada um com os jumpers mais o cabo grove. Posteriormente foram procurados e

implementados testes simples, básicos, afim de verificar se o Arduíno estava recebendo os có-

digos escritos e assim respondendo da forma esperada. Nesta fase do projeto, tivemos alguns

impasses com as portas de conexão entre Arduíno e computador, de maneira que a passagem

27

destes códigos não estavam ocorrendo - devido à porta de comunicação com o computador estar

desconfigurada - e posteriormente com as portas digitais do Arduíno, que também não estavam

configuradas como estavam escritas no código.

4.3 FUNÇÃO GERAL DO SISTEMA

O objeto deste trabalho tem como função principal a captura da variação da posição,

fornecendo ao usuário uma maneira simples e precisa de obter a inclinação da superfície que se

deseja analisar e, deste modo, tornando possível o seu nivelamento.

4.4 SOFTWARES

Os softwares utilizados para o desenvolvimento deste projeto, tanto na parte escrita

quanto na parte do objeto, foram:

• Compilador Arduíno

• LaTeX

4.5 DESPESAS

O custo para realização do projeto foi relativamente baixo, principalmente devido à

sua complexidade e densidade. Uma vez que os módulos utilizados possuem inúmeras utilida-

des dentro do curso de engenharia de computação, o arduino, a tela de LCD , a protoboard e

eventuais jumpers de ligação já se encontravam em mãos dos integrantes, de forma que apenas

o sensor acelerômetro, os botões, a placa impressa e a caixa do dispositivo eram faltantes.

28

Com o intuito de auxiliar futuros leitores, construiu-se a tabela abaixo em que encontram-

se disponíveis os preços dos respectivos componentes utilizados:

Item PreçoTela de LCD Nokia 5110 R$15,00Acelerômetro R$30,00Arduíno Uno R$30,00Protoboard R$15,00Botões R$2,00Encapsulamento R$15,00Placa Impressa e Acessórios R$20,00Custo Total Aproximado R$130,00

Tabela 2: Média de Gastos do Projeto

Estes foram buscados no site Deal Extreme (http://dx.com/pt/) e acessado dia 18 de

setembro de 2013 por volta das 12:00 horas.

29

5 RESULTADOS

5.1 RESULTADOS OBTIDOS

Os resultados obtidos na versão final do projeto foram bastante satisfatórios, atendendo

ao esperado pelo grupo. Todos os objetivos foram atingidos e todas as dificuldades superadas.

Acreditamos ter em mãos da melhor forma possível, a proposta sugerida. O nível digital con-

segue realizar as medições a priori sem distorções, sem eventuais bugs que possam atrapalhar

corriqueiramente na sua função.

5.2 DIFICULDADES DO PROJETO

Parafraseando o poeta, "Nem tudo são flores", pois também houveram alguns gargalos

que seguraram o andamento do projeto. Logo no início do trabalho da comunicação com o

Arduíno, ou ainda, com a portas, o grupo não teve facilidade em modificar a função de cada

entrada digital do Arduíno, uma vez que a configuração das bibliotecas utilizadas não estava na

configuração padrão.

Soubemos ainda que a porta de comunicação com o computador deveria também ser

alterada da padrão (COM3) após inúmeras tentativas de enviar os códigos para a plataforma

Arduíno, exigindo algumas pesquisas que nos mostraram o quão comumente este problema

acontece com os mais diversos usuários desta plataforma, tendo como solução a simples mu-

dança para a porta COM5.

Nos assombrou também, por demasiado tempo, um bug que teve grande custo para

identificarmos: os dados mostrados na tela de LCD, após algum tempo trabalhando ou mesmo

quando a inclinação variava em grandes proporções (altos valores do ângulo), a leitura/envio

de dados cessava e a tela de LCD estagnava no valor zero até um reset manual. Após algumas

tentativas objetivas de correção deste problema, houve necessidade de reescrita de boa parte do

código como solução.

30

Por fim, conciliar este trabalho junto das demais matérias do curso a fim de conseguir

um bom andamento em todas, uma vez que a demanda de tempo é demasiadamente grande para

a realização deste projeto como um todo - parte escrita, desenvolvimento do código, pesquisas,

dentre outros - não é tarefa simples, uma vez conhecida toda dedicação necessária em cada

parte. Foram exigidos tempos de trabalho durante o período de recesso bem como de finais de

semana, mas que a recompensa ao ver todas as propostas cumpridas supera o desgaste gerado.

5.3 TRABALHOS FUTUROS

Uma melhoria para um trabalho futuro sobre este projeto seria a implementação de

uma mediana a fim de filtrar o sinal, provendo maior estabilidade na leitura das inclinações,

uma vez que a alta sensibilidade não confere valores estáticos.

Uma segunda ideia seria acoplar ao projeto um servomotor que visa corrigir qualquer

variação de inclinação, como se compensasse qualquer desvio, mantendo sempre a estabilidade.

31

REFERÊNCIAS

ACELEROMETROS. 2013. Disponível em: <nebm.ist.utl.pt/repositorio/download/375>.Acesso em: 18 de setembro de 2013.

ADAFRUIT PCD8544 Nokia 5110 LCD Library. 2013. Disponível em:<https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library>. Acesso em:11 de setembro de 2013.

ARDUINO. 2013. Disponível em: <http://www.arduino.cc/>. Acesso em: 15 de agosto de2013.

ARDUINO Datasheet. 2013. Disponível em: <http://www.atmel.com/Images/doc8161.pdf>.Acesso em: 04 de setembro de 2013.

ARDUINO Uno. 2013. Disponível em: <http://www.bettech.com.br/portal5f/index.php/destaques/arduino-uno.html>. Acesso em: 04 de setembro de 2013.

GROVE System. 2013. Disponível em: <http://www.seeedstudio.com/document/pdf/Introduction%20to%20Grove.pdf>.Acesso em: 23 de julho de 2013.

I2C. 2013. Disponível em: <http://www.robot-electronics.co.uk/acatalog/I2CT utorial.html>.Acessoem :18desetembrode2013.

LCD Nokia 5110. 2013. Disponível em: <https://www.sparkfun.com/datasheets/LCD/Monochrome/Nokia5110.pdf>.Acesso em: 23 de julho de 2013.

MECATRONICA. 2013. Disponível em: <http://www.mecatronicaatual.com.br/educacao/969-transdutores-piezoeltricos>. Acesso em: 18 de setembro de 2013.

SEEED Studio. 2013. Disponível em: <http://www.seeedstudio.com/depot/grove-3axis-digital-accelerometer15g-p-765.html?cPath=25_26>. Acesso em: 19 de julho de 2013.

WIRE Library. 2013. Disponível em: <http://arduino.cc/en/reference/wire>. Acesso em: 11 desetembro de 2013.