Você está na página 1de 28

UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO

CURSO DE GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO

Edjair Aguiar Gomes Filho, Eduardo Cavalcante Araújo, Elayne Rute Lessa
Lemos, Ezaú Tertuliano da Silva, Igor Teixeira Pereira, José Weslles da Cruz
Souza, Larissa Almeida Rocha, Luis Gustavo Oliveira, Mateus Tamarindo
Gonzaga, Victor Dias Almeida

IMU: UNIDADE DE MEDIÇÃO INERTE

Juazeiro - BA
2022
Edjair Aguiar Gomes Filho, Eduardo Cavalcante Araújo, Elayne Rute
Lessa Lemos, Ezaú Tertuliano da Silva, Igor Teixeira Pereira, José
Weslles da Cruz Souza, Larissa Almeida Rocha, Luis Gustavo Oliveira,
Mateus Tamarindo Gonzaga, Victor Dias Almeida

IMU: UNIDADE DE MEDIÇÃO INERTE

Trabalho apresentado a Universidade Federal


do Vale do São Francisco - UNIVASF, Cam-
pus Juazeiro, como requisito da obtenção de
nota na disciplina Instrumentação Eletrônica.

Orientador: Jadsonlee Sá

Juazeiro - BA
2022
Edjair Aguiar Gomes Filho, Eduardo Cavalcante Araújo, Elayne Rute Lessa Lemos,
Ezaú Tertuliano da Silva, Igor Teixeira Pereira, José Weslles da Cruz Souza, Larissa
Almeida Rocha, Luis Gustavo Oliveira, Mateus Tamarindo Gonzaga, Victor Dias
Almeida
IMU: UNIDADE DE MEDIÇÃO INERTE / Edjair Aguiar Gomes Filho,
Eduardo Cavalcante Araújo, Elayne Rute Lessa Lemos, Ezaú Tertuliano da Silva,
Igor Teixeira Pereira, José Weslles da Cruz Souza, Larissa Almeida Rocha, Luis
Gustavo Oliveira, Mateus Tamarindo Gonzaga, Victor Dias Almeida. – Juazeiro -
BA, 2022-
xx p. : il. (algumas color.) ; 30 cm.

Orientador: Jadsonlee Sá

Relatório de projeto – UNIVERSIDADE FEDERAL DO VALE DO SÃO FRAN-


CISCO
CURSO DE GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO, 2022.
1. Palavra-chave1. 2. Palavra-chave2. I. Orientador. II. Universidade xxx. III.
Faculdade de xxx. IV. Título

CDU 02:141:005.7
UNIVERSIDADE FEDERAL DO VALE DO SÃO FRANCISCO
CURSO DE GRADUAÇÃO EM ENGENHARIA DA COMPUTAÇÃO

FOLHA DE APROVAÇÃO

Edjair Aguiar Gomes Filho, Eduardo Cavalcante Araújo, Elayne Rute Lessa
Lemos, Ezaú Tertuliano da Silva, Igor Teixeira Pereira, José Weslles da Cruz
Souza, Larissa Almeida Rocha, Luis Gustavo Oliveira, Mateus Tamarindo
Gonzaga, Victor Dias Almeida

IMU: UNIDADE DE MEDIÇÃO INERTE

Trabalho apresentado a Universidade Federal


do Vale do São Francisco - UNIVASF, Cam-
pus Juazeiro, como requisito da obtenção de
nota na disciplina Instrumentação Eletrônica.
Resumo
A unidade de medida inerte é um dispositivo eletrônico de precisão utilizado para cálculos
de aplicação de força utilizando certos parâmetros. O trabalho que segue serve para
apresentar o projeto de uma unidade de medida inerte composta por um giroscópio,
um acelerômetro e um magnetômetro, a partir dos conhecimentos adquiridos durante a
disciplina de Instrumentação Eletrônica.

Palavras-chaves: Unidade de medida inerte; Instrumentação eletrônica; Giroscópio;


Acelerômetro; Magnetômetro.
Abstract
The inert unit of measure is a precision device mainly used to calculate force applications
using certain parameters. The following work serves to present a design of an IMU,
composed of a gyroscope, an accelerometer and a magnetometer. This work was based on
the Electronic Instrumentation subject.

Key-words: Inert measurement unit; Electronic instrumentation; Gyroscope; Accelerome-


ter; Magnetometer.
Lista de ilustrações

Figura 1 – Pinos do sensor GY-87. . . . . . . . . . . . . . . . . . . . . . . . . . . 14


Figura 2 – Conexão do arduino com o sensor GY-87. . . . . . . . . . . . . . . . . 14
Figura 3 – Modelo de sensor ESP-01. . . . . . . . . . . . . . . . . . . . . . . . . . 15
Figura 4 – Esquema de pinos do arduino UNO. . . . . . . . . . . . . . . . . . . . 16
Figura 5 – Utilização dos registradores no código do projeto . . . . . . . . . . . . 19
Figura 6 – Montagem do sistema microcontrolador. . . . . . . . . . . . . . . . . . 20
Figura 7 – Visão geral do sistema IMU proposto. . . . . . . . . . . . . . . . . . . 21
Figura 8 – Integração entre arduino UNO e sensor IMU GY-87. . . . . . . . . . . 23
Figura 9 – Dashboard projetada para o sistema supervisório. . . . . . . . . . . . . 24
Figura 10 – Função utilizada para leitura e escrita. . . . . . . . . . . . . . . . . . . 25
Figura 11 – Função utilizada para leitura e escrita. . . . . . . . . . . . . . . . . . . 25
Figura 12 – Função utilizada para leitura e escrita. . . . . . . . . . . . . . . . . . . 25
Lista de tabelas

Tabela 1 – Comandos do ESP AT. . . . . . . . . . . . . . . . . . . . . . . . . . . 15


Sumário

Lista de ilustrações . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

Lista de tabelas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.1 Justificativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.2 Objetivos gerais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Objetivos específicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

2 REFERENCIAL TEÓRICO . . . . . . . . . . . . . . . . . . . . . . . 11
2.1 Grandezas físicas a serem medidas . . . . . . . . . . . . . . . . . . . 11
2.1.1 Velocidade Angular . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.2 Aceleração Linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.1.3 Força do Campo Magnético . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2 Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.1 Giroscópio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2.2 Aceleromêtro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.3 Magnetômetro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

3 MATERIAIS E MÉTODOS . . . . . . . . . . . . . . . . . . . . . . . 13
3.1 Sensor GY-87 10 DOF . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2 Comunicação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.1 ESP01 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.2 Comandos AT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.2.3 Standalone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2.4 Arduino . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.2.5 Protocolos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.2.6 Montagem do circuito . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
3.2.7 Visão geral do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 Sistema supervisório . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.1 MongoDB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.2 Laravel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3.3 ReactJS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

4 RESULTADOS OBTIDOS . . . . . . . . . . . . . . . . . . . . . . . 23
4.1 Integração IMU com Arduino UNO . . . . . . . . . . . . . . . . . . . 23
4.2 Sistema supervisório . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.1 Back-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.2 Front-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
4.2.3 Funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

5 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.0.1 Considerações Finais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
5.0.2 Dificuldades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26

6 REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
10

1 Introdução

Uma unidade de medida inerte (IMU, no inglês) é um dispositivo eletrônico usado


para calcular e informar com precisão a força aplicada a um corpo, com sua direção e ângulo.
Usando, para isso, três sensores: um giroscópio, um acelerômetro e um magnetômetro.
IMUs são normalmente usados no monitoramento e manejo de aeronaves e satélites.

1.1 Justificativa
Instrumentação eletrónica é a parte da eletrónica, principalmente analógica, que se
encarrega do projeto e manejo de equipamentos eletrónicos e elétricos para seu uso em
medidas e controle de máquinas e processos. Sendo assim, buscamos aplicar os princípios
da instrumentação através do projeto de uma unidade de medida inerte conectada ao
dispositivo aéreo não tripulado de pequeno porte destinado a entrega de pequenos artefatos.

1.2 Objetivos gerais


Projetar de forma precisa e completa uma unidade de medida inerte, composta por
um giroscópio, um acelerômetro e um magnetômetro.

1.3 Objetivos específicos

• Projetar e programar uma unidade de medida inerte;

• Disponibilizar um sistema web para visualização das informações obtidas.


11

2 Referencial Teórico

2.1 Grandezas físicas a serem medidas


2.1.1 Velocidade Angular
Análogo à velocidade linear, podemos definir a velocidade angular média, como a
razão entre o deslocamento angular pelo intervalo de tempo do movimento:
∆φ
ωm =
t
Unidades: rad/s, rpm, rev/min, rev/s.
Também é possível definir a velocidade angular instantânea como o limite da
velocidade angular média quando o intervalo de tempo tender a zero:

ω = lim ωm
∆t→0

2.1.2 Aceleração Linear


Podemos definir uma aceleração média se considerarmos a variação de velocidade
em um intervalo de tempo , e esta média será dada pela razão:

∆v
αm =
∆t

2.1.3 Força do Campo Magnético


A força magnética é um tipo de força entre objetos ferromagneticos, que atua
mesmo que não estejam em contato, tal como a força gravitacional e a força elétrica. Pode
ser atrativa ou repulsiva.

2.2 Sensores
2.2.1 Giroscópio
Giroscópio é um dispositivo cujo eixo de rotação mantém sempre a mesma direção
na ausência de forças que o perturbem, seja qual for a direção do veículo que o conduz, e
que é composto de um disco rígido ou um volante que gira em grande velocidade ao redor
de um eixo de revolução e é suspenso de modo a ter liberdade de movimentos [É usado em
Capítulo 2. Referencial Teórico 12

diferentes aparelhos de navegação]. Seu funcionamento baseia-se no princípio da inércia. O


eixo em rotação tem um efeito de memória que guarda direção fixa em relação ao círculo
máximo, dispensando as coordenadas geográficas.

2.2.2 Aceleromêtro
Acelerômetro é um dispositivo que mede a vibração ou a aceleração do movimento de
uma estrutura. A força causada por uma vibração ou alteração do movimento (aceleração)
faz com que a massa "esprema"o material piezoelétrico, produzindo uma carga elétrica
proporcional à força exercida sobre ele. Como a carga é proporcional à força e a massa é
uma constante, a carga também é proporcional à aceleração.

2.2.3 Magnetômetro
Magnetômetro é um instrumento usado para medir a intensidade, direção e sentido
de campos magnéticos em sua proximidade. Quando está dotado de um instrumento
registador, é por vezes referido como um magnetógrafo. Em geral, são utilizados em
estudos de geofísica relacionados com o campo magnético terrestre e com a magnetosfera.
13

3 Materiais e métodos

3.1 Sensor GY-87 10 DOF


O sensor GY-87 é uma combinação de 3 sensores: MPU6050, HMC5883L e um
sensor de temperatura barométrica e pressão. Esses ultimos sensores podem ser o BMP180
ou o BMP085. O protocolo de comunicação utilizado é o I2C. Os pinos do módulo são:

• VCC IN: Module power supply – 5V

• 3V: Module power supply – 3.3V

• GND: Ground

• SCL: Serial Clock for I2C protocol

• SDA: Serial Data for I2C protocol

• FSYNC: Synchronous digital input (I2C speed setting)

• INTA: MPU6050 IC interrupt pin

• DRDY: Data ready pin for HMC5883L IC

3.2 Comunicação
3.2.1 ESP01
O ESP 01 é a versão mais comum do ESP8266, sendo a versão mais básico contendo
o mínimo de pinos. O ESP01 possui dois modos de operação: Comandos AT e Standalone.

3.2.2 Comandos AT
No modo Comandos AT, o módulo possui instalado um programa chamado
“Firmware Comandos AT”. Esse programa tem uma função pré-determinada que é receber
comandos de operação via UART (pinos TX e RX). Nesse modo, o ESP-01 deverá trabalhar
em conjunto com um microcontrolador. O microcontrolador será o responsável por enviar
os comandos AT para o ESP-01. A placa Arduino possui um microcontrolador capaz de
realizar esses comandos. O Firmware Comandos AT já vem instalado de fábrica, podendo
estar em diferentes versões, mas pode ser atualizado caso venha com uma versão antiga.
Veremos sobre gravação e atualização do firmware mais a frente.
Capítulo 3. Materiais e métodos 14

Figura 1 – Pinos do sensor GY-87.

Fonte: Os Autores (2022)

Figura 2 – Conexão do arduino com o sensor GY-87.

Fonte: Os Autores (2022)

Esse modo pode ser utilizado quando você tem em mãos o módulo ESP-01 mas quer
usar mais pinos em seu projeto, utilizando então o ESP-01 em conjunto com um Arduino.
Assim você desenvolve seu projeto usando mais portas digitais, analógicas, expandindo a
possibilidade de desenvolvimento.
Capítulo 3. Materiais e métodos 15

Tabela 1 – Comandos do ESP AT.

Fonte: Os Autores (2022)

3.2.3 Standalone
No modo Standalone, o ESP-01 trabalha como um microcontrolador por si só, sem
a necessidade de um microcontrolador externo. O software pode ser totalmente custo-
mizado de acordo com as necessidades de uso. É possível utilizar a IDE Arduino, criar
um programa básico de pisca LED e gravar no módulo. É possível também utilizar as
bibliotecas de WiFi para ESP8266 e desenvolver o software em cima delas, criar web
servers e muito mais. Esse modo é muito utilizado com as placas de desenvolvimento como
NodeMCU, pois possuem mais pinos tornando os projetos mais interessantes e livres para
customizações. Mas nada impede de também utilizá-lo com ESP-01. Quando não faz-se
necessário o uso de um microcontrolador externo e quando é interessante customizar o
software programado no ESP-01 para que realize diversas funções diferentes.

Figura 3 – Modelo de sensor ESP-01.

Fonte: Os Autores (2022)


Capítulo 3. Materiais e métodos 16

3.2.4 Arduino
Arduino é uma plataforma de prototipagem eletrônica muito versátil e amplamente
utilizada por estudantes, hobbistas e profissionais das mais diversas áreas. O objetivo
principal do Arduino é tornar o acesso à prototipagem eletrônica mais fácil, mais barata
e flexível. As versões mais simples da placa utilizam um microcontrolador da família
Atmel AVR e uma linguagem de programação baseada em C/C++. Com ele é possível
criar projetos variados em eletrônica, desde os mais simples até aplicações intermediárias
como Internet das Coisas (IoT), Robôs, Sistemas de Automação Residencial ou Industrial,
Alarmes e outros. O Arduino Uno é a placa mais recomendada para quem está começando
na plataforma. Ela possui excelente custo-benefício, quantidade de porta (entrada/saída)
suficiente para a criação de protótipos com vários sensores e módulos conectados. O
microcontrolador da placa Uno é o ATMega328P, com clock de 16MHz, 14 pinos de I/O,
sendo 6 analógicos e 6 com função PWM (Pulse Width Modulation). A placa Uno tem
32KB de memória flash, onde são armazenados os programas. A conexão com o computador
usa um cabo USB A/B, o mesmo utilizado em impressoras USB, podendo ser alimentado
com uma fonte externa chaveada de 7 a 12 VDC.

Figura 4 – Esquema de pinos do arduino UNO.

Fonte: Os Autores (2022)


Capítulo 3. Materiais e métodos 17

3.2.5 Protocolos

• I2C (Inter-Integrated Circuit) é um barramento serial Barramento multimestre


desenvolvido pela Philips que é usado para conectar periféricos de baixa velocidade a
uma placa mãe, a um sistema embarcado ou a um telefone celular. O nome significa
Circuito Inter-integrado e é pronunciado I-ao quadrado-C, ou I-dois-C. Desde o dia 1
de Outubro de 2006, nenhuma taxa de licenciamento é exigida para implementar o
protocolo I2C, contudo, algumas taxas ainda são exigidas para obtenção de endereços
escravos I2C.

• TWI (Two Wire Serial Interface), que significa Interface de Dois Fios, é em sua
maior parte idêntico ao I2C, pois recebeu esse nome da Atmel e outras empresas
para evitar conflitos com nome de marcas relacionadas a I2C, mas dispositivos que
usam TWI tendem a serem compatíveis com I2C, exceto pela transmissão geral e
endereçamento de 9 bits que ele pode apresentar.
Os dispositivos são conectados através de duas vias, que são vias seriais (SDA)
que transportam dados, endereços e controle, e vias do tipo clock serial (SCL) que
sincroniza o emissor e o receptor durante cada transferência.
O protocolo trabalha de maneira a permitir vários mestres no mesmo barramento,
sendo mais comum um único mestre com diversos escravos. Tendo o endereçamento
mais utilizado o de 7 bits, o que permite conexão de até 112 dispositivos, pois 16
de seus endereços são reservados (o endereçamento de 10 bits também é possível,
mas não usual). Os dispositivos I2C podem ser classificados como mestre e escravo,
onde o mestre gera o sinal de clock e inicia a transmissão, e o escravo obedece
os comandos recebidos. Dependendo da aplicação, um dispositivo pode ser apenas
escravo, mestre/escravo ou apenas mestre.
Quando existem múltiplos escravos, cada um possui seu próprio endereço que é único,
e responde apenas quando solicitado. Nesses casos, o mestre inclui o endereço do
escravo no início da mensagem que vai enviar para todos os dispositivos conectados
ao barramento, mas somente o destinatário vai reconhecer seu endereço e participar
da transferência.
Em resumo, as principais características do I2C são: Operação como mestre e escravo;
Endereçamento de 7 bits; Permitem operações com vários mestres; Velocidade de
transferência de até 400 kHz; Drivers de saída com limitação na taxa de subida;
Circuito supervisor de ruído no barramento; Permite “despertar” a CPU do modo
Sleep graças ao reconhecimento de endereço;
Os possíveis sinais que transitam no barramento são: Condição de início; Condição
de parada; Condição de reinício; Condição de Acknowledge (ACK); Transmissão de
endereço; Transmissão de dados; Pausa;
Capítulo 3. Materiais e métodos 18

Uma transmissão é iniciada quando o mestre executa uma condição de início no


barramento e só termina quando o mestre executa uma transmissão de parada, assim,
entre o início e o término, o barramento é considerado ocupado e nenhum outro
mestre pode controlar o barramento. O reinício ocorre quando o mestre envia uma
condição de início após já ter sido iniciada uma transmissão mas não quer perder o
controle do barramento.
O TWI é orientado a byte e baseado em interrupções, essas que são realizadas após
a ocorrência de eventos no barramento, deixando o TWI livre para realizar outras
funções durante a transferência de bytes.
Na transmissão de endereço no barramento TWI as informações são formadas por
9 bits, sendo 7 referentes ao endereço, 1 para controle de leitura/escrita (L/E) e 1
para confirmação (ACK). Se o bit de leitura/escrita é 1 será realizado uma leitura,
caso contrário uma escrita.
O TWI pode operar em 4 modos principais: Mestre Transmissor (MT); Mestre
Receptor (MR); Escravo Transmissor (ST); e Escravo Receptor (SR). Durante a
transmissão de dados, o mestre gera o clock e a condição de início e de parada,
enquanto o escravo é responsável por responder se recebeu o dado.

• USART: A Universal Synchronous and Asynchronous serial Receiver and Transmit-


ter é um periférico com características muito flexíveis e amplamente utilizado na
comunicação serial dos microcontroladores com o mundo externo. O seu emprego
é exemplificado na comunicação do ATmega com um computador, através de uma
porta USB, na comunicação entre módulos básicos de rádio frequência e na comu-
nicação com dispositivos bluetooth. A grande vantagem da USART é que muitos
dispositivos eletrônicos modernos suportam seu protocolo de comunicação.
As principais características do módulo de comunicação USART do ATmega328 são:

– Operação Full Duplex (registradores independentes de recepção e transmissão).


– Operação síncrona ou assíncrona.
– Operação síncrona com clock mestre ou escravo.
– Gerador de taxa de comunicação de alta resolução (Baud Rate Generator).
– Suporta frames seriais com 5, 6, 7, 8 ou 9 bits de dados e 1 ou 2 bits de parada.
– Gerador de paridade par ou ímpar e conferência de paridade por hardware.
– Detecção de colisão de dados e erros de frames.
– Filtro para ruído, incluindo bit de início falso e filtro digital passabaixa.
– Três fontes separadas de interrupção (transmissão completa, recepção completa
e esvaziamento do registrador de dados).
Capítulo 3. Materiais e métodos 19

– Modo de comunicação assíncrono com velocidade duplicável.


– Pode ser utilizada como interface SPI mestre.

Para gerar a taxa de comunicação no modo mestre, é empregado o registrador


UBRR0 (USART Baud Rate Register 0). Um contador decrescente trabalhando na veloci-
dade de clock da CPU é carregado com o valor de UBRR0 cada vez que chega a zero ou
quando o UBRR0 é escrito. Assim, um pulso de clock é gerado cada vez que esse contador
zera, determinando a taxa de comunicação (baud rate). O transmissor dividirá o clock de
baud rate por 2, 8 ou 16, de acordo com o modo programado. A taxa de transmissão de
saída é usada diretamente pela unidade de recepção e recuperação de dados.

Figura 5 – Utilização dos registradores no código do projeto

Fonte: Os Autores(2022)

Para duplicar a taxa de comunicação no modo assíncrono, basta ativar o bit


U2X0 do registrador UCSR0A. Esse bit deve ser colocado em zero na operação síncrona.
Emprega-se um sinal externo de clock no pino XCK para os modos síncronos de recepção
escravo. A frequência máxima desse sinal está limitada pelo tempo de resposta da CPU,
devendo seguir a seguinte condição:

fosc
fXCK <
4

A frequência do sistema depende da estabilidade da fonte de clock. É recomendado


usar alguma margem de segurança na equação acima para evitar uma possível perda de
dados.
Quando o modo síncrono é usado (UMSEL0=1), o pino XCK será empregado como
clock de entrada (escravo) ou saída (mestre). O princípio básico é que o dado de entrada
(no pino RXD) é amostrado na borda oposta do XCK quando a borda do dado de saída é
alterada (pino TXD). O bit UCPOL0 do registrador UCRS0C seleciona qual borda de
XCK é usada para a amostragem do dado e qual é usada para a mudança do dado.
Capítulo 3. Materiais e métodos 20

Figura 6 – Montagem do sistema microcontrolador.

Fonte: Os Autores (2022)

3.2.6 Montagem do circuito


Componentes:

• Arduino Uno;

• Sensor GY-87 10 DOF;

• ESP01;

• Protoboard;

• Resistores 1k, 10k, 10k;


Capítulo 3. Materiais e métodos 21

Figura 7 – Visão geral do sistema IMU proposto.

Fonte: Os Autores (2022)

3.2.7 Visão geral do sistema

3.3 Sistema supervisório


Os dados coletados pelo sistema do microcontrolador supracitado enviará os dados
para o sistema supervisório composto por uma aplicação do tipo back-end, que será uma
Application Program Interface (API ) para o banco de dados e uma aplicação front-end,
aqui representado por uma dashboard. O sistema supervisório será provisionado a partir
provedor de Infraestrutura como Serviço — Infrastructure as a Service — (IaaS ).

3.3.1 MongoDB
O banco de dados do sistema supervisório servirá para armazenar os dados enviados
pelo microcontrolador ao longo do tempo. Para isso, utilizaremos o MongoDB, que é um
sistema de gerenciamento de banco de dados não relacional (DBMS) de código aberto
que usa documentos flexíveis em vez de tabelas e linhas para processar e armazenar
várias formas de dados. Como uma solução NoSQL, o MongoDB não requer um sistema
de gerenciamento de banco de dados relacional (RDBMS), por isso fornece um modelo
de armazenamento de dados elástico que permite aos usuários armazenar e consultar
tipos de dados multivariados com facilidade e criando um ambiente altamente escalável.
Outra facilidade do MongoDB é que muitos dos provedores de IaaS já dispõem de bancos
administrados.

3.3.2 Laravel
A API do sistema supervisório será escrita em Laravel, um framework para de-
senvolvimento web na linguagem PHP, uma linguagem de propósito geral amplamente
Capítulo 3. Materiais e métodos 22

utilizada na web. Por meio dela, é possível dispor de rotas para receber os dados do
microcontrolador e salvá-los no banco de dados; bem como, definir rotas de consulta para
uso no front-end da aplicação. A comunicação com a API será estabelecida por meio de
token de acesso. Assim, as rotas da API serão definidas para:

• Salvar dados recebidos do microcontrolador


/api/records/store

• Retornar dados para o front-end


/api/records

3.3.3 ReactJS
A interface do sistema supervisório ficará disponível na web a partir de uma
aplicação em ReactJS (ou React), que é uma biblioteca de front-end gratuita e de código
aberto escrita para o JavaScript para a construção de interfaces de usuário baseadas
em componentes. É mantido pela Meta Platforms Inc., popularmente conhecida como
Facebook, e por uma comunidade de desenvolvedores e empresas individuais. O React pode
ser usado como base no desenvolvimento de aplicações single-page ou para dispositivos
móveis.
23

4 Resultados obtidos

4.1 Integração IMU com Arduino UNO


A integração da placa de desenvolvimento Arduino Uno se comunica com o sensor
IMU GY-87 se dá através de comunicação i2c através das portas Analógicas ADC4 e ADC5
do controlador com as portas sda e scl do sensor, através dessa interface e da biblioteca
do MPU6050 é possível captar os dados do giroscópio e temperatura do sensor. Os dados
mostram a posição dos eixos X, Y e Z. Com o auxílio do datasheet do MPU6050, do
datasheet do ATMega foi possível criar a biblioteca para configurar os registradores e
desenvolver a primeira parte do projeto referente a coleta dos valores coletados do sensor.

Figura 8 – Integração entre arduino UNO e sensor IMU GY-87.

Fonte: Os Autores (2022)


Capítulo 4. Resultados obtidos 24

4.2 Sistema supervisório


4.2.1 Back-end
O back-end do sistema supervisório foi construído através da ferramenta de cri-
ação de projeto disponibilizada pelo framework Laravel e conta com dois controladores
direcionados para o tratamento das informações disponibilizadas pelo sistema IMU: um
voltado à inserção desses dados na base não-relacional MongoDB e o outro focado no
envio dessas informações para a visualização web do sistema. O projeto conta também
com um arquivo de rotas, onde é direcionado o fluxo de entrada e saída de dados através
de métodos HTTP. É possível conhecer e clonar o projeto através do Github, disponível
em: <https://github.com/elaynelemos/imu-system>.
Através dos controladores RecordController e DatabaseController são armazenados
e disponibilizados para o front-end os dados do sistema IMU.

4.2.2 Front-end
A especificação do projeto também descreve a utilização de uma aplicação web
utilizada na visualização das informações aferidas pelo IMU.
Construída com auxílio da ferramenta Figma, a Figura 9 ilustra um protótipo do re-
sultado esperado na construção do front-end do sistema supervisório.

Figura 9 – Dashboard projetada para o sistema supervisório.

Fonte: Os Autores(2022)
Capítulo 4. Resultados obtidos 25

4.2.3 Funções
As Figuras 10-12 apresentam as funções utilizadas para leitura e escrita de dados
dos sensores utilizados.

Figura 10 – Função utilizada para leitura e escrita.

Fonte: Os Autores (2022)

Figura 11 – Função utilizada para leitura e escrita.

Fonte: Os Autores (2022)

Figura 12 – Função utilizada para leitura e escrita.

Fonte: Os Autores (2022)


26

5 Conclusão

5.0.1 Considerações Finais


Dadas as especificações iniciais do projeto e utilizando o Datasheet apresentado
em aula, os resultados gerais desse artigo mostraram um desenlaçamento satisfatório
na leitura do acelerômetro, giroscópio e também no sensor de temperatura. Com isso, é
possível concluir que a unidade de medida inerte faz jus ao seu frequente uso em projetos
de monitoramento de aeronaves e satélites, fornecendo uma leitura de dados simples e
eficiente.

5.0.2 Dificuldades
As principais dificuldades do projeto se apresentaram na leitura do magnetômetro,
que não funcionou como o esperado. Além disso, a leitura serial, além da comunicação
com o ESP, também se apresentaram como problemas onde não houve tempo hábil de
solução para a equipe durante o prazo final do projeto.
O desenvolvimento do front-end também foi uma tribulação de desenvolvimento,
não tendo gerado frutos além do protótipo apresentado na Seção 4.2.2 do presente relatório.
27

6 Referências

Halliday, David; RESNICK, Robert; WALKER, Jearl. Fundamentals of physics. John


Wiley and Sons, 2013.

Inertial Sensors and Inertial Measurement Units. (2021). Pedestrian Inertial Na-
vigation with Self-Contained Aiding, 17–36. doi:10.1002/9781119699910.ch2

Inertial Measurement Unit. 2021. Disponível em:


<https://www.inertialmeasurementunit.org /inertial-measurement-unit-imu>. Acesso em
dezembro de 2021.

Laravel LLC, 2022. Laravel Documentation. Disponível em:


<https://laravel.com/docs/8.x/installation>. Acesso em janeiro de 2022.

Lima, Charles Borges de; Villaça, Marco V. M. AVR e Arduino:


Técnicas de Projeto. 2. ed. Florianópolis: Ed. dos autores, 2012.

Meta Plataforms Inc, 2022. Documentação React. Disponível em:


<https://pt-br.reactjs.org/docs/getting-started.html>

MongoDB Inc, 2021. MongoBD Docs. Disponível em:


<https://docs.mongodb.com>. Acesso em janeiro de 2022.

SHKEL, Andrei M.; WANG, Yusheng. Zero-Velocity Update Aided Pedestrian


Inertial Navigation, capítulo 2. 2021.

Você também pode gostar