collapse

* Posts Recentes

Emulador NES em ESP32 por dropes
[13 de Março de 2024, 21:19]


Escolher Osciloscópio por jm_araujo
[06 de Fevereiro de 2024, 23:07]


TP4056 - Dúvida por dropes
[31 de Janeiro de 2024, 14:13]


Leitura de dados por Porta Serie por jm_araujo
[22 de Janeiro de 2024, 14:00]


Distancia Cabo por jm_araujo
[08 de Janeiro de 2024, 16:30]


Meu novo robô por josecarlos
[06 de Janeiro de 2024, 16:46]


Laser Engraver - Alguém tem? por almamater
[16 de Dezembro de 2023, 14:23]


Focos LED SMD por almamater
[16 de Dezembro de 2023, 14:12]


I Belive por dropes
[15 de Dezembro de 2023, 13:59]


Carga de corrente eletrónica ZPB30A1 60W por jm_araujo
[11 de Dezembro de 2023, 13:27]

Autor Tópico: HMC6352 bússola digital + Arduino Diecimila  (Lida 51074 vezes)

0 Membros e 1 Visitante estão a ver este tópico.

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
HMC6352 bússola digital + Arduino Diecimila
« em: 20 de Agosto de 2008, 13:18 »
HMC6352 bússola digital com Arduino Diecimila




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 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) 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 nestes pins, e a biblioteca wire.h que vamos utilizar não implementa I2C 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.
« Última modificação: 21 de Outubro de 2009, 16:01 por TigPT »

Offline silva_p

  • Mini Robot
  • *
  • Mensagens: 172
Re: HMC6352 bússola digital
« Responder #1 em: 22 de Agosto de 2008, 17:24 »
Parece porreiro!
onde se pode comprar?
abrç

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: HMC6352 bússola digital
« Responder #2 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
« Última modificação: 21 de Outubro de 2009, 16:00 por TigPT »

Offline wallaaa

  • Mini Robot
  • *
  • Mensagens: 7
    • Blog (paradp =/) de robótica
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #3 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)?

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #4 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.

Offline wallaaa

  • Mini Robot
  • *
  • Mensagens: 7
    • Blog (paradp =/) de robótica
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #5 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

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #6 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.

Offline wallaaa

  • Mini Robot
  • *
  • Mensagens: 7
    • Blog (paradp =/) de robótica
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #7 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.

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #8 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.

Offline microbyte

  • Mini Robot
  • *
  • Mensagens: 1.322
    • http://ricardo-dias.com/
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #9 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.

Offline wallaaa

  • Mini Robot
  • *
  • Mensagens: 7
    • Blog (paradp =/) de robótica
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #10 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) 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.

Offline XicoMBD

  • Mini Robot
  • *
  • Mensagens: 571
    • FranciscoDias.net
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #11 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 Yes it is in portuguese.
http://letsmakerobots.com/node/19554

Parabéns Tiago  ;)

« Última modificação: 03 de Junho de 2010, 14:43 por TigPT »

Offline TigPT

  • Administrator
  • Mini Robot
  • *****
  • Mensagens: 5.372
    • Tiago Rodrigues
Re: HMC6352 bússola digital + Arduino Diecimila
« Responder #12 em: 19 de Maio de 2010, 11:36 »
Haha.. :D Obrigado por postares aqui.