LusoRobótica - Robótica em Português

Electrónica => Sensores => Tópico iniciado por: TigPT em 20 de Agosto de 2008, 13:18

Título: HMC6352 bússola digital + Arduino Diecimila
Enviado por: TigPT em 20 de Agosto de 2008, 13:18
HMC6352 bússola digital com Arduino Diecimila

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg396.imageshack.us%2Fimg396%2F7200%2Fzf0rqr3iwackgzixnp54887ye5.th.jpg&hash=e5ae77fac551fda18bc4ad5253d9d6ca5dea7dd6) (http://img396.imageshack.us/my.php?image=zf0rqr3iwackgzixnp54887ye5.jpg)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg396.imageshack.us%2Fimages%2Fthpix.gif&hash=b03cfde8dc317b0352b5de5c61ffdfebf843917a) (http://g.imageshack.us/thpix.php)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg383.imageshack.us%2Fimg383%2F3609%2Fmvkmpil3uween4xyq5yf490xq5.th.jpg&hash=e37c3a5f23ac37b9707db959b42eaec1bfdace9d) (http://img383.imageshack.us/my.php?image=mvkmpil3uween4xyq5yf490xq5.jpg)(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fimg383.imageshack.us%2Fimages%2Fthpix.gif&hash=0d4b3c3d065b5ee112094a7ddeb12ec17f5f85eb) (http://g.imageshack.us/thpix.php)


O HMC6352 é bastante conhecido e utilizado no mundo da robótica, devido não só ao seu baixo custo, como a sua boa precisão, e fácil utilização.

Principalmente por utilizar o protocolo I2C (http://lusorobotica.com/index.php/topic,33.0.html) e poder ser posto ou retirado sem grandes alterações de software, e quase nenhumas de hardware, estes componentes são ideais para aplicações expansíveis onde se pretende ir aumentando ou diminuindo o número de módulos, quer sensores, quer actuadores.

Assim, hoje eu vou exemplificar como colocar este sensor em funcionamento, e fazer leituras do mesmo com 4 fios (2 de alimentação, 2 de bus I2C (http://lusorobotica.com/index.php/topic,33.0.html)) e um Arduino Diecimila.

Primeiro passo, ligar GND e VCC do arduino ao sensor, (podemos optar pelos 5V ou pelos 3,3V se quisermos meter num bus que já tem outros componentes a 3,3V, pois este sensor adapta-se a qualquer uma das tensões.) assim como o SCL e o SDA aos pins 5 e 4 analógicos do arduino respectivamente.

Porque raio é que tenho que gastar o pin 4 e 5 do analógico se estes sinais são digitais, e o Arduino Diecimila dispõe de mais pins digitais?

Pois bem, o Atmega 168 de que é feito o Arduino, só implementa o protocolo I2C (http://lusorobotica.com/index.php/topic,33.0.html) nestes pins, e a biblioteca wire.h que vamos utilizar não implementa I2C (http://lusorobotica.com/index.php/topic,33.0.html) por software, mas sim faz a bridge para a implementação do Atmega.

Com isto podemos ou não utilizar umas resistências de pull up pois é aconselhado neste protocolo, mas eu testei sem elas e funciona perfeitamente.

Assim com o exemplo de código anexado serão feitas leituras de segundo em segundo e mostradas na consola do Arduino, podendo assim vocês sabendo como receber valores da bússola, utiliza-la para manipulação de software, ou orientação de um robot.

Atenção que esta deve de ser colocada o mais afastada possível de interferências magnéticas, tal como motores, e outras fontes de campos, a fim de se poder obter valores correctos.
Título: Re: HMC6352 bússola digital
Enviado por: silva_p em 22 de Agosto de 2008, 17:24
Parece porreiro!
onde se pode comprar?
abrç
Título: Re: HMC6352 bússola digital
Enviado por: TigPT em 22 de Agosto de 2008, 17:24
Mandei vir da Sparkfun.com  <img src="{SMILIES_PATH}/icon_e_wink.gif" alt=";)" title="Wink" />

Acho muito útil para ajudar a navegação.

Cumprimentos,

(Edit)

Disponível na Loja LusoRobótica (http://loja.lusorobotica.com/wireless/17-compass-module-hmc6352.html)
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: wallaaa em 05 de Janeiro de 2010, 12:38
Eu sei que isso é bem relativo ao motor que é utilizado mas alguem pode dar uma estimativa do quanto distante o sensor deve estar de um motor DC de médio porte (voltagem de 6V a 12V)?
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: TigPT em 05 de Janeiro de 2010, 13:30
Bem-vindo,

Não faço ideia do que considera um motor de médio porte, mas o melhor mesmo é fazer leituras constantes, depois ligar o motor e ver se os valores se alteram ou continuam fiáveis. Tente também comparar com uma bussula mecânica ao lado (o raio de acção das forças do motor serão semelhantes na bússola mecânica e na electrónica)

O ideal é ver o datasheet do motor.
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: wallaaa em 05 de Janeiro de 2010, 13:53
Entendo, e com as experiências que você tem esse sensor é confiável?
Muito obrigado pela resposta, fiquei até impressionado cmo a prontidão =D
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: TigPT em 05 de Janeiro de 2010, 13:59
Os valores são bastante fiáveis. A ver se ganho tempo para fazer uns algoritmos de mapeamento com ele.
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: wallaaa em 05 de Janeiro de 2010, 15:01
Obrigado =D
Estou trabalhando em um robô para soccer e estou preocupado principalmente com a interferência que pode ser causada por um solenóide.
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: TigPT em 05 de Janeiro de 2010, 15:11
solenóide provoca uma grande interferencia, pelo que sei ninguém utiliza o sensor nesta modalidade por isso mesmo contudo acho que não faz sentido. Há que testar se a bússola depois de atordoada por um remate volta ao valor correcto e quanto tempo demora. Se filtrarmos os valores da bússola com encoders das rodas, sabemos se ela está a rodar porque estamos a andar ou se está demasiado oscilante e assim se houve um remate perto.
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: microbyte em 05 de Janeiro de 2010, 15:14
Nos robôs do Cambada (UA) usamos bússolas... E também têm solenoides, só que a bússola está colocada o mais afastada possível deste. O problema não são os solenoides, mas sim os campos magnéticos que a maioria dos campos tem (por causa de cabos passados por baixo da terra)...

Muitas vezes não podemos utilizar as bússolas para a localização. Usamos apenas informação visual.
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: wallaaa em 05 de Janeiro de 2010, 15:42
É que a nossa categoria não é aquela com uma câmera de visão geral do campo, trata-se da modalidade soccer da liga Junior da RoboCup (http://rcj.robocup.org (http://rcj.robocup.org)) nós utilizaremos 4 sensores de ultrassom e 1 bússola para se localizar em relação ao campo. Creio que o solenóide só interfira por um momento pequeno (somente quando for chutar) o unico problema é se o sensor demoraria muito para "se recompor", os fios também são problemas, a ideia é deixar o Compass o mais afastado possível, dentro dos limites de dimensão da categoria.
Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: XicoMBD em 19 de Maio de 2010, 07:58
Estava a ver as novidades no LMR, e deparei-me com isto:

Citar
Now lets upload some practice code. http://lusorobotica.com/ficheiros/bussola_codigo_1.pde (http://lusorobotica.com/ficheiros/bussola_codigo_1.pde) Yes it is in portuguese.
http://letsmakerobots.com/node/19554 (http://letsmakerobots.com/node/19554)

Parabéns Tiago  ;)

Título: Re: HMC6352 bússola digital + Arduino Diecimila
Enviado por: TigPT em 19 de Maio de 2010, 11:36
Haha.. :D Obrigado por postares aqui.