Em diversos tipos de sistemas de navegação de robôs, pessoas e astronomia, necessitamos determinar a orientação do movimento. Desse modo, necessitamos da bússola a fim de determinar essas orientações. Portanto, por meio dela temos a capacidade de detectar a direção da partícula em movimento. Nesse artigo Magnetômetro Arduino HMC5883L em um Projeto Prático com Display, apresentaremos o processo de construção da bússola com Arduino e o sensor GY 273.
De acordo com o problema, utilizaremos o sensor GY 273, para coleta de dados das informações de direção e apresentaremos no LCD 16×2 com o Arduino.
A seguir, apresentaremos a estrutura de desenvolvimento do projeto.
Desenvolvimento do Magnetômetro Arduino HMC5883L
Primeiramente, o dispositivo desenvolvido é apresentado na Figura 1. Por meio dele, podemos utilizá-lo na orientação de pessoas, robôs e astronomia, por exemplo.
Portanto, esse circuito tem a finalidade de determinar a orientação por meio do sensor GY 273. Em seguida, os dados coletados serão utilizados para calcular e apresentar a direção cardeal do objeto no LCD 16×2.
Em seguida, apresentamos a lista completa dos componentes utilizados nesse projeto.
Lista de Componentes para o Projeto Magnetômetro Arduino
- 1 x Arduino Nano;
- 1 x Sensor GY 273;
- 1 x Display LCD 16 x 2;
- 1 x Resistor 1kR;
- 1 x Trimpot 1kR;
- 1 x Kit Jumpers Rígidos;
- 1 x Protoboard 830 furos.
A seguir, iniciaremos a apresentação do desenvolvimento da lógica para construção da bússola com o Arduino.
Programação da Bússola com Arduino
A princípio, utilizaremos o módulo GY-273, que possui o sensor HMC5883L. Por meio desse sensor, desenvolvemos a lógica para detectarmos a direção de todos os pontos de Norte a Sul e, em seguida, apresentamos as direções no LCD. A seguir, apresentamos a lógica completa para a criação da bússola digital com Arduino.
[crayon-673f47867f7ac595221712/]
Agora, apresentaremos a discussão passo a passo do código desenvolvido.
Inicialmente, implementamos as bibliotecas e, em seguida, inicializamos o uso da comunicação com o sensor e o LCD na função setup. O código é apresentado a seguir.
[crayon-673f47867f7b1092030397/]
Ao final da função, apresentamos a mensagem Direção na linha 0 e coluna 0. Em seguida, o fluxo de execução entrará na função loop. Após isto, iniciará o processo de cálculo do ângulo de orientação do sensor em graus, conforme apresentado abaixo.
[crayon-673f47867f7b2787751555/]
Logo após, o sistema ajustará o ângulo entre 0º e 360º, caso o ângulo seja negativo, conforme apresentado a seguir.
[crayon-673f47867f7b3315043026/]
Finalmente, após o angulo ser ajustado entre 0º e 360º, serão executadas 8 condições. Desse modo, cada condição possui uma faixa de valores de ângulos, que representam uma direção específica. A seguir, são apresentadas as 8 condições para cada faixa de ângulo.
[crayon-673f47867f7b4638482773/]
Logo, baseado nas condições apresentadas acima, o sistema apresentará a orientação do dispositivo. Isto pode ser visto na Figura 2.
Portanto, de acordo com a alteração na posição do ângulo do sensor HMC5883, o sistema apresentará uma nova orientação na tela do LCD. A seguir, apresentaremos algumas sugestões de aplicações e projetos futuros com o sensor HMC5883.
Conclusão
De acordo com o sistema apresentado, o sensor apresentou estabilidade nas medições das orientações com Arduino. Portanto, por meio dele, é possível aplicá-lo em sistemas que necessitam de cálculo e indicação de orientação na robótica e em outros dispositivos.
Além disso, esse dispositivo sensor é bastante utilizado por observadores da área de astronomia. Dessa forma, é possível realizar cálculos e posicionar os dispositivos de observação para análise dos astros.
Por fim, agradecemos sua leitura e convidamos a deixar suas dúvidas sobre o funcionamento ou discutir novos projetos utilizando esse sensor.
Arquivos de Projeto
A seguir, disponibilizamos a lista de arquivos para download e execução do seu projeto.
Biblioteca de comunicação I2C com o LCD