Você está na página 1de 17

Sensores Inerciais MPU-6050, MMA8452 e

MPU-9250
Introdução
Sensor Inercial

Um sensor inercial ou também conhecido como IMU (Unidade de Medição


Inercial) é um componente capaz de obter a posição, orientação e velocidade
de qualquer dispositivo onde seja utilizado para captura e análise de
movimento. A sua construção pode ser um pouco complexa porque é composta
por 3 sensores diferentes. Dentro deste, são incorporados giroscópios,
acelerômetros e em alguns modelos magnetômetro que se baseia em
tecnologias MEMS (Sistema micro eletromecânico) com características mais
leves e menores do que o habitual. Isso é usado para produzir uma medição
tridimensional de uma força específica e velocidade angular.

COMO FUNCIONA UM SENSOR INERCIAL

Cada um dos sensores que compõem o sistema são adicionados e fornece


uma função para alcançar um único resultado. O giroscópio se encarrega de
medir as voltas feitas, enquanto o acelerômetro mede a aceleração linear que é
realizada para qualquer lado e finalmente o magnetômetro obtém informações
sobre o norte magnético para estar sempre localizado em relação ao campo
magnético da terra, como mostrado na figura.

Para este estudo vamos nos referir apenas ao acelerômetro e giroscópio.

ACELERÔMETRO.
O acelerômetro é um dispositivo eletromecânico usado para medir as forças de
aceleração. Essas forças podem ser estáticas, como o caso da força contínua
da gravidade, ou, como é no caso de muitos dispositivos móveis dinâmicas
para detectar movimento ou vibração.

A aceleração pode ser expressa nos três eixos X, Y, Z que são as três
dimensões do espaço, o que permite conhecer simultaneamente a magnitude e
a direção da aceleração medida, assim também o IMU pode detectar a
aceleração da gravidade que é de 9,8 m/s2 e graças à gravidade terrestre
pode-se usar as leituras do acelerômetro para saber o ângulo de inclinação em
relação ao eixo X, eixo Y ou eixo Z.

Cómo determinar a orientação do sensor, esta é obtida usando a


trigonometria, o esquema é ilustrado na figura abaixo, no caso 2D, assumindo
que colocamos o sensor horizontalmente em seu plano X-Y, com Z apontando
para cima, e giramos apenas no eixo Y, a equação para o ângulo é a seguinte.

Semelhantemente, no caso 3D as equações são as seguintes:


Um acelerômetro é um dispositivo muito versátil, que permite realizar medições
de aceleração e orientação. Além disso, são sensores absolutos, ou seja,
existe um ponto de medição 0,0,0, que corresponderia ao sensor caindo
livremente no vácuo.

GIROSCÓPIO

Um giroscópio é um dispositivo que usa a gravidade da Terra para ajudar a


determinar a orientação. Seu projeto consiste em um disco girando livremente
chamado rotor, montado em um eixo giratório no centro de uma roda maior e
mais estável. À medida que o eixo gira, o rotor permanece estacionário para
indicar a atração gravitacional central e, portanto, em que direção está "para
baixo" o qual indica que os giroscópios são dispositivos puramente diferenciais,
ou seja, não há referência absoluta, mas sim ângulos relativos a uma
referência arbitrária os quais são sempre medidos.

Existem vários tipos de giroscópios (mecânicos, anel laser, fibra óptica). Os


usados em MEMS são chamados de giroscópios vibratórios de efeito Coriolis
(CVG), que de certa forma podem ser considerados uma evolução do pêndulo
de Foucault. O princípio de funcionamento de um CVG é que um objeto
vibrante tende a vibrar no mesmo plano, mesmo que gire. O efeito Coriolis faz
com que o objeto vibratório exerça uma força sobre o suporte, e medindo essa
força podemos determinar a rotação a que o giroscópio está submetido, esta
situação está ilustrado na figura abaixo.

Para registrar o efeito da força de Coriolis, um MEMS possui estruturas


semelhantes às do acelerômetro. Certas partes do corpo são submetidas à
vibração por ressonância e o efeito da força de Coriolis deforma a estrutura, o
que pode ser medido pela variação da capacitância do sistema.
Como no caso dos acelerômetros, o normal é que os giroscópios que usamos
sejam de 3 eixos, ou seja, registram independentemente a rotação em X, Y e Z,
o que nos permite determinar a magnitude e o sentido da rotação. Uma das
conseqüências do uso da força de Coriolis é que os giroscópios vibratórios, ao
contrário de outros tipos de giroscópios, não registram o ângulo girado, mas
sim a velocidade angular, que é a razão de variação do ângulo em relação ao
tempo.

SENSOR IMU MPU-6050

O módulo MPU6050 contém um giroscópio de três eixos com o qual podemos


medir a velocidade angular e um acelerômetro de 3 eixos com o qual medimos
os componentes X, Y e Z da aceleração, o acelerômetro funciona pelo princípio
piezoelétrico. Internamente, os acelerômetros possuem um MEMS (Micro
Electro Mechanical Systems) que, semelhante a um sistema massa-mola,
permite a medição da aceleração. Os giroscópios usam um MEMS para medir
a velocidade angular usando o efeito Coriolis.

Assim, num único chip o sensor MPU-6050 contém um acelerômetro e um


giroscópio tipo MEMS. São 3 eixos para o acelerômetro e 3 eixos para o
giroscópio, sendo ao todo 6 graus de liberdade (6DOF). Além disso, esta placa
tem um sensor de temperatura embutido no CI MPU6050, permitindo medições
entre -40 e +85 ºC. Possui alta precisão devido ao conversor analógico digital
de 16-bits para cada canal. Portanto o sensor captura os canais X, Y e Z ao
mesmo tempo.

Especificações

 Chip: MPU-6050;
 Tensão de Operação: 3-5V;
 Conversor AD 16 bits;
 Comunicação: Protocolo padrão I2C;
 Faixa do Giroscópio: ±250, 500, 1000, 2000°/s;
 Faixa do Acelerômetro: ±2, ±4, ±8, ±16g;
 Dimensões: 2 x 1,6 x 0,1mm.

A Figura mostra a ilustração do sensor MPU-6050 em que são observados os


pinos de conexão vcc, gnd, scl, sda, xda, xcl, add, int, as direções dos eixos x,
y, z, bem como os micro componentes. pelo qual o sensor é composto.

Algumas aplicações de acelerômetros são:

 Medição da aceleração de veículos, como carros e caminhões;


 Monitoramento de animais em estudos biológicos;
 Monitoramento de instrumentos industriais;
 Identificação de terremotos ou tremores em lugares específicos.

A direção dos eixos X, Y y Z está indicado mesmo módulo, como ilustrado na


figura abaixo.
El sensor acelerómetro mide la aceleración en las tres dimensiones del espacio; X, Y
y Z. Debido a que la única fuerza que actúa sobre el sensor es la fuerza de gravedad, los
valores que se obtienen de los componentes de este sensor corresponden a la de la
gravedad.

Por trigonometría, se obtienen los ángulos de inclinación respecto al eje X y al eje Y.

En cuanto al ángulo con respecto al eje Z, se necesitaría de otro componente llamado


magnetómetro, que es un tipo de brújula digital. (Aprendiendo arduino, 2016). Sin
embargo, para nuestro sistema, conocer los grados de inclinación de los ejes X e Y será
suficiente para el control de estabilidad.

Por otro lado, el sensor giroscopio mide la velocidad angular del dispositivo en las
tres dimensiones; X, Y, Z. Para el cálculo del ángulo de rotación actual, es necesario
conocer el ángulo inicial en que se encuentra el dispositivo e integrar la velocidad que
éste lleva. Su fórmula es la siguiente:
Onde:

 ϴX é o ângulo de rotação do eixo X sob o seu próprio eixo.


 ϴXAnterior, é o ângulo calculado na última chamada desta equação.
 ωX, é a leitura atual do giroscópio do ângulo X.
 Δt é o tempo que passa cada vez que é chamada a equação.

Descrição dos pinos da placa do sensor


MPU6050
Cabe destacar o fato que o MPU-6050 também inclui um processador
interno DMP (Digital Motion Processor), as quais no português significa
Processador digital de movimentos, o qual se encarrega de executar
complexos algoritmos de captura de movimento. A seguir, temos a tabela
das características do módulo MPU-6050.

Exemplo de uso do sensor no controle de um drone


Para o correto manuseio de um drone, é importante primeiro entender quais
são os principais movimentos que ele pode realizar. Esses movimentos são os
seguintes: Yaw (Yaw) rotação no eixo Z; Roll (Roll) rotação no eixo X; Pitch
(Pitch), rotação sobre o eixo Y e Altitude (Throttle). A seguir, passaremos a
explicar cada um deles.

 Yaw (Yaw): Corresponde à rotação no sentido contrário (ou não) no


sentido horário em relação ao eixo vertical perpendicular ao drone.
Nos quadricópteros, esse movimento é obtido girando os 2 rotores
em uma direção e os outros 2 rotores em outra direção; Se você
quiser fazer o drone girar no sentido anti-horário, 2 desses rotores
devem estar girando mais rápido nesse sentido (sentido anti-horário)
do que os outros 2 rotores (que continuarão girando no sentido
horário), ao contrário dos anteriores). (Quadcopters | Drone Flyers,
2015).

 Warping (Roll): Corresponde ao movimento para a esquerda ou para


a direita em relação ao eixo longitudinal do drone. Para conseguir
esse movimento, o que devemos fazer é girar os pares de motores
opostos em velocidades diferentes; se você quiser girá-lo para a
esquerda, os 2 rotores do lado direito devem girar mais rápido que os
rotores do lado esquerdo, e se você quiser girá-lo para a direita, os 2
rotores do lado esquerdo devem girar mais rápido que os rotores do
lado direito. (Quadcopters | Drone Flyers, 2015).

 Pitch: Corresponde à rotação para frente ou para trás em relação ao


eixo transversal do drone. Para conseguir esse movimento,
passamos a fazê-lo da mesma forma que conseguimos fazer o
rolamento, mas com a diferença de que os rotores que girarão mais
rápido que os outros serão separados pelo eixo transversal do drone
e não longitudinal ( como acontece com o empenamento). Uma
imagem está anexada abaixo para melhor compreensão.
(Quadcopters | Drone Flyers, 2015).
 Altitude (Throttle): Corresponde ao movimento de subida ou descida
(elevação vertical) do drone. Para fazer o drone subir devemos
aumentar a velocidade de rotação de todos os motores, e para fazê-
lo descer devemos reduzir suavemente a velocidade de rotação dos
motores.

Comentários:

Como foi possível observar nas imagens anteriores, um rotor gira no


mesmo sentido que seu homólogo localizado na extremidade oposta, e o
mesmo ocorre para o outro par. Esse arranjo de motores é encontrado
em qualquer tipo de configuração de quadricóptero. Se os motores não
estivessem dispostos dessa maneira, o drone começaria a girar sobre si
mesmo e seria difícil de controlar.

Assim, para fazer o drone se mover em uma direção (esquerda, direita,


para cima ou para baixo), devemos fazer 2 rotores do mesmo lado girar
mais rápido que os outros 2 em relação ao eixo longitudinal ou
transversal (dependendo de onde você quer deslocar).

Isso se deve ao fato de que quando começamos a girar vários motores


com diferentes velocidades de rotação, a posição de equilíbrio horizontal
que o drone anteriormente tinha quando seus motores giravam na
mesma velocidade é desestabilizada, criando uma força para cima no
lado onde os motores giram, os motores giram mais rápido.
Implementação funcional (material e componentes)

Depois de ver como o quadricopter consegue se mover e se mover na


direção que queremos, também é importante saber como todos os seus
componentes (mecânicos e elétricos) funcionam juntos e se relacionam
entre si. Como bem sabemos até agora, os 4 motores que se encontram
em cada extremidade do drone são os que permitem levantá-lo. No
entanto, esses 4 motores são trifásicos (sem escovas) e precisam de
corrente alternada (CA) para funcionar.

A bateria a ser utilizada fornece corrente contínua (CC), portanto deve-


se utilizar um item separado que forneça corrente alternada para o
funcionamento destes motores. É aqui que entram os ESCs: Controlador
Eletrônico de Velocidade, Controle Eletrônico de Velocidade, ou também
conhecido como Variador Eletrônico de Velocidade.

De forma bem resumida, os ESCs se encarregam de controlar a


velocidade, e com ela, a direção do drone. No entanto, deve haver um
componente ou dispositivo cuja função seja transmitir as informações
adequadas a esses variadores de velocidade e, assim, conseguir atingir
a estabilidade de voo desejada; a placa do processador entra em ação.

Para que a placa processadora envie as devidas informações aos


variadores eletrônicos de velocidade, é necessário que a placa receba
dados de entrada, ou seja, informações de fora. Os dispositivos
responsáveis por receber essas informações são chamados de sensores.

Em outras palavras, os sensores são responsáveis por capturar dados


do mundo externo ao seu redor. No quadricóptero, nosso único sensor
será do tipo inercial, neste caso, um MPU-6050, que por sua vez inclui 2
sensores integrados; o acelerômetro e giroscópio

No entanto, é importante observar que esses dados de entrada que o


sensor MPU-6050 irá coletar não serão as únicas informações que a
placa processadora receberá, mas também receberão informações do
controle manual. Como o próprio nome indica, este componente será
responsável por poder controlar o voo do drone através de um algoritmo
ou aplicativo desenvolvido. E, como esse controle deve ser feito
remotamente (sem fio), é necessária a presença de outro dispositivo que
se encarregue de comunicar esse app com a placa processadora. É aqui
que o módulo entra em jogo. comunicações sem fio, que pode usar um
módulo Bluetooth HC-06. Todos esses dispositivos eletrônicos serão
alimentados por uma bateria.

No entanto, para que todos esses componentes juntos alcancem a


elevação, controle, estabilidade e manobrabilidade do drone, um
algoritmo deve ser usado ou um sistema de controle automático que
garante que não trava, e é aqui que entra o conceito de controle
automático.

Sistema de Controle Automático

Um sistema de controle automático vem a ser um conjunto de


componentes físicos conectados ou relacionados entre si que regulam
os processos de controle sem intervenção humana. Os principais
componentes de um controle automático são os seguintes:

 O sensor: É o instrumento encarregado de capturar as informações


externas onde está localizado. Em nosso sistema, o referido sensor é
o MPU-6050, cuja função é medir aceleração e velocidade angular.
 O controlador: É o dispositivo encarregado de avaliar e processar o
sinal de erro. Este sinal de erro nada mais é do que a diferença entre
um sinal de referência e o sinal captado pelo sensor anteriormente.
Além disso, o controlador também será responsável por dizer aos
atuadores (ESC, servos, etc) o que fazer para corrigir ou minimizar
esse sinal de erro. Em nosso sistema, o controlador será o
microcontrolador baseado na plataforma Arduino.
 Atuador: É o elemento que recebe a ordem do controlador e, a partir
dela, aciona um elemento final de controle. Em nosso sistema, os
atuadores serão os controladores eletrônicos de velocidade (ESC)
juntamente com os 4 motores brushless.
 Planta: É o sistema sobre o qual se pretende atuar ou aplicar o
controle. Nosso próprio sistema será o drone junto com todos os
elementos que o compõem.

Abaixo está um diagrama de blocos de um sistema de controle


automático de malha fechada onde todos esses elementos interagem.

Como mencionado anteriormente, o sensor inercial será o MPU-6050.


Este dispositivo é capaz de medir a velocidade angular e a aceleração
em seus três componentes X, Y e Z. As informações coletadas por este
módulo são as que o controlador irá analisar e, dependendo de sua
análise, ele passará a agir de uma forma ou de outra .
O controlador é o elemento que determina o comportamento do loop,
portanto pode-se dizer que é o cérebro do sistema. Enquanto o sinal de
erro permanecer dentro das faixas esperadas, o controlador não
exercerá controle sobre o elemento atuador. Porém, se o sinal de erro
se afastar do valor predefinido, o controlador modifica seu sinal
(variação da fonte de alimentação) e manda os atuadores realizarem
sua ação na planta para minimizar esse sinal de erro. Esse sinal de erro
é o que impede a estabilidade do sistema.

Agora existem muitos tipos de controladores. Entre os mais comuns


estão os do tipo manual, pneumático ou eletrônico. O que usaremos em
nosso sistema é do tipo eletrônico. Para que um sistema atinja a
estabilidade, em geral, utiliza-se um controlador PID, cujas siglas
significam: Proporcional, Integral e Derivativo. Sua definição, utilidade,
bem como suas características são descritas a seguir:

O Controle PID

Até agora, vimos separadamente a configuração dos principais


componentes que um drone integra. Porém, é agora que devemos juntar
todos esses elementos e fazê-los funcionar como um todo, obtendo
assim um sistema. No entanto, para que todos esses componentes
juntos alcancem elevação, controle, estabilidade e manobrabilidade do
drone, um algoritmo ou sistema de controle automático deve ser usado
para garantir que ele não caia, e é aqui que entra o conceito de controle
PID.

O controle PID é um mecanismo de controle que através de um loop de


realimentação permite regular a velocidade, temperatura, pressão ou
vazão dependendo da variável a ser controlada em um sistema.

É um algoritmo de controle em malha fechada que calcula e compara a


variável controlada sendo medida (real) com a variável desejada (ou
referência).

Para que o controlador PID faça a correta regulação de um determinado


processo, é preciso que o sistema tenha os seguintes elementos:

 1 (um) controlador, que se encarregará de gerar o sinal que


governa o atuador com base no sinal de erro que o controlador
avaliou anteriormente.
 Um (1) atuador, encarregado de modificar o sistema de forma
controlada.
Os controladores PID incluem três parâmetros fundamentais que
fornecem ação Proporcional, Integral e Derivativa. São essas três ações
que dão nome a esse tipo de mecanismo de controle, onde cada uma
tem uma determinada função na estabilização do sistema. (Pardos,
2019).

A seguir, se fará uma explicação de cada uma destes 3 módulos que


conformam um controlador PID.

Controle Proporcional

Este representa o controle principal e sua função é criar uma resposta


proporcional ao sinal de erro e(t). Em outras palavras, a ação
proporcional multiplica internamente esse sinal de erro por uma
constante Kp, que representa um ganho proporcional ajustável. A
fórmula para este tipo de controle é dada pela seguinte expressão:

O objetivo deste controlador é minimizar o erro do sistema. Caso o erro


seja grande, a ação deste controlador será grande e tenderá a minimizar
o erro. O fato de querer aumentar a ação do controlado traz consigo os
seguintes efeitos:

- A velocidade de resposta do sistema aumenta.

- O erro do sistema em estado estacionário diminui.

- A instabilidade do sistema aumenta.

Os dois primeiros efeitos são desejáveis. No entanto, esta última é a que


se deve tentar minimizar.
Em outras palavras, o controlador proporcional se caracteriza por
exercer grande influência na velocidade de resposta do sistema; Por ter
uma pequena constante Kp, o sistema vai demorar para atingir o
setpoint (valor de referência), e com isso, o atuador exercerá um
controle ruim e o tempo de resposta do sistema aumentará. Por outro
lado, por ter uma grande constante Kp, o tempo de resposta pode ser
reduzido, mas o sistema tenderá a oscilar, ou seja, a ficar instável.

Deve-se notar que a parte proporcional não elimina completamente o


erro no longo prazo. Portanto, a melhor forma de solucionar o erro
permanente é incluir no sistema módulos ou componentes com ações
integrais e derivativas.

Controle Integral

A ação integral se encarrega de eliminar o erro residual que resta do


controlador proporcional, reduzindo-o a zero, ou seja, calcula a integral
do sinal de erro e(t). A fórmula para este tipo de controle é dada pela
seguinte expressão:

Esta integral representa o acúmulo do sinal de erro. Com o passar do


tempo, pequenos erros se somam para que a ação desse controle
aumente, conseguindo reduzir o erro do sistema em regime permanente.
Ou seja, permite que o controlador elimine completamente o erro a longo
prazo.

O tempo que o sistema leva para eliminar o referido erro da constante Ki.
O fato de querer eliminar esse erro o mais rápido possível aumentando a
constante Ki traz os seguintes efeitos:

- O erro de estado estacionário diminuirá.

- A instabilidade do sistema aumentará.

- A velocidade do sistema aumenta.

A constante de integração Ki indica a velocidade com que a ação


proporcional é repetida. (Canalés, 2014).

Controle Derivativo
A ação derivativa ocorre quando há uma mudança no valor absoluto do
erro, sendo o erro a diferença entre a medição real e o valor de
referência. A função deste módulo ou controle é eliminar as oscilações,
gerando uma correção no sinal de controle proporcional à derivada do
sinal de erro e(t). (Wikipédia, sem data). A fórmula para este tipo de
controle é dada pela seguinte expressão:

A derivada do sinal de erro representa a taxa de mudança deste sinal de


erro. Sistemas que se movem em altíssima velocidade em torno do
ponto de referência tendem a gerar oscilações e instabilidade em torno
do valor do setpoint, fazendo com que o próprio sistema passe por este
ponto devido a sua inércia. Para resolver esse problema, o controlador
precisa reconhecer a velocidade com que o sistema está se
aproximando da referência para poder desacelerá-lo antecipadamente
ao se aproximar da referência desejada e evitar que ele a ultrapasse.
(Pardos, 2019).

O fato de aumentar a constante de derivação Kd traz os seguintes


efeitos:

- O erro de estado estacionário permanecerá o mesmo.

- A estabilidade do sistema aumentará.

- A velocidade do sistema diminui um pouco.

A aplicação deste tipo de controle é ideal para sistemas com oscilação


excessiva.

Por fim, as saídas desses três módulos (proporcional, integral e


derivativo) são unidas e somadas para obter a equação de controle PID
total:

Onde:

- y(t): é o sinal de controle; e(t) é o sinal de erro; Kp, Ki e Kd


representam oc parâmetros do controlador PID
O comportamento do controlador PID dependerá muito da soma dessas
três componentes (proporcional, integral e derivativa), controladas
através de seus três parâmetros (Kp, Ki, Kd). Essas três constantes
precisam ser calibradas e ajustadas, de forma que a malha de controle
corrija efetivamente o efeito das perturbações no menor tempo possível.

Uma vez explicada a teoria que envolve os controladores PID, podemos


agora centrar a nossa atenção nos passos seguintes para a construção
e programação de um controlador PID.

Testes Experimentais.

Um primeiro passo é construir um sistema piloto que permita aprender a


programar e utilizar um sistema PID experimental.

Você também pode gostar