Um dos sensores muito usados em robótica é a bússola, afinal é preciso saber a direção em que vai o robô!
Neste
caso esse é um sensor tri axial, ou seja, faz medições em três eixos
(x, y e z) de baixíssimo custo e fácil de encontrar. Para ser mais
específico, esse foi comprado na Tato Equipamentos Eletrônicos (www.tato.ind.br). O chipset é o HMC5883 (GY-271).
Primeiro vamos montar e programar, depois mostrarei alguns detalhes importantes.
O sensor vem com a barra de pinos separada e com duas opções, pinos retos e curvos em 90 graus.
Note
que a bússola deve ser utilizada na posição horizontal então use a
barra de pinos adequada ao seu projeto, bastando soldá-la, com cuidado
para não aquecer demais o sensor.
As identificações dos pinos ficarão embaixo do sensor.
Ao coloca-lo no protoboard lembre-se que estarão invertidos:
Agora
vamos às ligações, ligue o pino VCC do sensor ao pino 3,3V do Arduino.
Isso mesmo, ele trabalha na faixa de tensão de 2,7V até 5,2. Isso
permite total compatibilidade com outros dispositivos I2C.
Ligue o pino GND ao GND do Arduino:
Ligue o pino SCL ao pino analógico 5 e o pino SDA ao analógico 4:
O código:
Depois de compilar envie para seu Arduino. Para ver as medições abra o Serial Monitor.
Funcionando:
Os resultados são em graus em relação do norte magnético.
O que fizemos:
Com o #import importamos a biblioteca Wire do Arduino que facilitará as coisas com os comandos para I2C.
O endereço é 0x1E que é definido pelo equipamento, a bússola no caso, em binário 0011110.
Com
Wire.begin inicia-se o objeto Wire, com Wire.beginTransmission
inicia-se o endereço e abre-se canal para transmissão. Com
Wire.endTransmission fecha-se comunicação.
Com
Wire.write escreve-se um valor (hexadecimal) para o endereço
especificado. Os valores 0x02 seleciona o modo registrador da bússola.
Enviar
0x00 selecionará o modo de transmissão contínua e enviar 0x01
selecionará o modo de transmissão única, ou seja, emitirá uma medição e
ficará parado.
A configuração dos registradores é a que segue:
Dos aspectos importantes que falei no começo recomendo ainda pesquisar sobre Declinação Magnética, que pode influenciar, e muito, o resultado das medições.
0 comentários:
Postar um comentário