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
MURILO SOARES ALVES
RENAN FERNANDES TELES
NÍVEL DIGITAL
Relatório final apresentado como requisito parcial
para a obtenção de aprovação na disciplina de Oficinas de Integração II do curso de Engenheria de Computação.
Orientador:
Juliano Mourão Vieira
CURITIBA
2013
Dedicamos este relatório a todos os nossos apoiadores e envolvidos no
projeto, que nos impulsionaram e contribuiram direta ou indiretamente
no 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 que
ningué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 em
Engenharia 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 acompanhando o progresso tecnólogico. Este projeto visa desenvolver um nível digital, construindoo 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 um
acelerô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 e
uma tela de LCD. De maneira sucinta, o arduino controla os dados que recebe do acelerômetro
e envia para a tela de maneira gráfica ou númerica.
Por fim, o trabalho cumpre a sua premissa: Acrescentar um conhecimento aos alunos para
assim ser construído um dispositivo prático, realizando uma ligação do aluno com as matérias
já cursadas.
Palavras-chave: Nível Digital, Arduíno, LCD, Sensor de Posição, Acelerômetro
LISTA DE FIGURAS
FIGURA 1
FIGURA 2
FIGURA 3
FIGURA 4
FIGURA 5
FIGURA 6
FIGURA 7
FIGURA 8
FIGURA 9
FIGURA 10
FIGURA 11
–
–
–
–
–
–
–
–
–
–
–
Diagrama de Blocos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Arduíno Uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acelerômetro Capacitivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Acelerômetro Digital . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ponte de Wheatstone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
LCD Nokia 5110 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Especificações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Ligação com o Arduíno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Placa Impressa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Protocolo I 2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Projeto Em Fase Intermediária . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
14
16
17
18
19
20
20
21
23
23
LISTA DE TABELAS
TABELA 1
TABELA 2
– Especificações do Arduino Uno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
– Média de Gastos do Projeto . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
LISTA DE SIGLAS
LCD
IDE
PWM
ICSP
VCC
GND
SCE
RST
D/C
SCLK
LED
DN(MOSI)
I 2C
SDA
SCL
LSB
ACK
Liquid Crystal Display
Integrated Development Environment
Pulse Width Modulation
In Circuit Serial Programming
Collector Supply Voltage
Ground
Serial Chip Enable
Reset
Data/Command
Serial Clock Line
Light-Emitting Diode
Serial Data Input
Inter IC
Serial Data
Serial Clock
Least Significant Bit
Acknowledge
SUMÁRIO
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.1 MOTIVAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.1 Objetivo Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.2 Objetivos Específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3 ESPECIFICAÇÕES DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1 COMPONENTES DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.1 Arduíno . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2 Acelerômetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2.1 Acelerômetro Capacitivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2.2 Acelerômetro Piezoelétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2.3 Acelerômetro Piezoresistivo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.2.4 Acelerômetro Micro Eletro-Mecânico (MEMS) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.3 LCD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.1.4 Placa Impressa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 PROTOCOLO I 2C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1 Comunicação de Dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1.1 LCD - Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1.2 Acelerômetro - Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1.3 Botões - Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2.1.4 Computador - Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1 FUNDAMENTOS DO PROJETO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 PASSOS SEGUIDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.3 FUNÇÃO GERAL DO SISTEMA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.4 SOFTWARES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.5 DESPESAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 RESULTADOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.1 RESULTADOS OBTIDOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 DIFICULDADES DO PROJETO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.3 TRABALHOS FUTUROS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
10
11
11
11
11
12
13
13
14
15
16
17
18
18
19
21
22
23
24
24
24
25
26
26
26
27
27
27
29
29
29
30
31
10
1
INTRODUÇÃO
A medição do nivelamento de superfícies é utilizado em diversos campos, desde caseiros 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 superfí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 possibilidade 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 pretendese 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 I 2C 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, conforme 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
3.1
ESPECIFICAÇÕES DO SISTEMA
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 à flexibilidade 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.
1 Sã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
Tensão de operação
Tensão de entrada (recomendada)
Tensão de entrada (limites)
Pinos de I/O Digitais
Pinos Analógicos
Corrente CC por I/O Pino
Corrente do Pino 3.3V
Memória Flash
SRAM
EEPROM
Velocidade do Clock
ATmega328
5V
7-12V
6-20V
14 (6 deles com saída PWM)
6
40 mA
50 mA
32 KB (ATmega328) 0.5 KB p/ Bootloader
2 KB (ATmega328)
1 KB (ATmega328)
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.
3 Dispositivo
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 capacitâ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 comprimidos. 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 I 2C
O protocolo de comunicação I 2C (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 determinante para a grande aceitação deste protocolo no mercado. O barramento I 2C permite trabalhar,
num mesmo sistema, com diversos circuitos dedicados utilizando as mesmas linhas de informaçã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 I 2C
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 (I 2C, 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é entã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 exemplifica 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 declarase 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
4.1
METODOLOGIA
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 acelerô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 primeiramente 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 trabalho, 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 utilidades 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 encontramse disponíveis os preços dos respectivos componentes utilizados:
Item
Tela de LCD Nokia 5110
Acelerômetro
Arduíno Uno
Protoboard
Botões
Encapsulamento
Placa Impressa e Acessórios
Custo Total Aproximado
Preço
R$15,00
R$30,00
R$30,00
R$15,00
R$2,00
R$15,00
R$20,00
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
5.1
RESULTADOS
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 consegue 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 mudanç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:
Acesso em: 18 de setembro de 2013.
<nebm.ist.utl.pt/repositorio/download/375>.
ADAFRUIT PCD8544 Nokia 5110 LCD Library. 2013. Disponível
<https://github.com/adafruit/Adafruit-PCD8544-Nokia-5110-LCD-library>. Acesso
11 de setembro de 2013.
em:
em:
ARDUINO. 2013. Disponível em: <http://www.arduino.cc/>. Acesso em: 15 de agosto de
2013.
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/arduinouno.html>. Acesso em: 04 de setembro de 2013.
GROVE System. 2013. Disponível em: <http://www.seeedstudio.com/document/pdf/Introduction%20to%2
Acesso em: 23 de julho de 2013.
I 2C. 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/Nokia5
Acesso em: 23 de julho de 2013.
MECATRONICA. 2013. Disponível em: <http://www.mecatronicaatual.com.br/educacao/969transdutores-piezoeltricos>. Acesso em: 18 de setembro de 2013.
SEEED Studio. 2013. Disponível em: <http://www.seeedstudio.com/depot/grove-3axisdigital-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 de
setembro de 2013.
Download

Nível Digital - pessoal.utfpr.edu.br