universidade tecnolÓgica federal do paranÁ...
TRANSCRIPT
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.