- Materiais requisitados
- O que é um magnetômetro e como ele funciona?
- Como funciona o módulo do sensor HMC5883L
- Diagrama de circuito
- Fabricação de PCBs para a bússola digital
- Montagem do PCB
- Programando o Arduino
O cérebro humano é constituído de camadas complexas de estruturas que nos ajudam a ser uma espécie dominante na Terra. Por exemplo, o córtex entorrinal em seu cérebro pode lhe dar um senso de direção, ajudando você a navegar facilmente por lugares que você não está familiarizado. Mas, ao contrário de nós, os robôs e os veículos Ariel não tripulados precisam de algo para obter esse senso de direção para que possam manobrar autonomamente em novos terrenos e paisagens. Diferentes robôs usam diferentes tipos de sensores para fazer isso, mas o comumente usado é um magnetômetro, que poderia informar o robô em qual direção geográfica ele está voltado no momento. Isso não apenas ajudará o robô a sentir a direção, mas também a se alternar em uma direção e anjo predefinidos.
Como o sensor pode indicar geograficamente o Norte, o Sul, o Leste e o Oeste, nós, humanos, também podemos usá-lo quando necessário. Portanto, neste artigo, vamos tentar entender como o sensor do magnetômetro funciona e como fazer a interface com um microcontrolador como o Arduino. Aqui vamos construir uma bússola digital legal que nos ajudará a encontrar as direções, acendendo um LED apontando para a direção norte. Esta bússola digital é perfeitamente fabricada em PCB da PCBGOGO, para que eu possa carregá-la na próxima vez que eu sair em liberdade e desejar me perder apenas para usar essa coisa para encontrar o meu caminho de volta para casa. Vamos começar.
Materiais requisitados
- Arduino Pro mini
- Sensor magnetômetro HMC5883L
- Luzes LED - 8Nos
- Resistor 470Ohm - 8Nos
- Barrel Jack
- Um fabricante de PCB confiável como PCBgogo
- Programador FTDI para mini
- PC / laptop
O que é um magnetômetro e como ele funciona?
Antes de mergulharmos no circuito, vamos entender um pouco sobre o magnetômetro e como eles funcionam. Como o nome sugere, o termo Magneto não se refere àquele mutante louco em maravilha que poderia controlar metais apenas tocando piano no ar. Ohh! Mas eu gosto daquele cara, ele é legal.
O magnetômetro é na verdade um equipamento que pode detectar os pólos magnéticos da Terra e apontar a direção de acordo com eles. Todos nós sabemos que a Terra é um grande pedaço de ímã esférico com Pólo Norte e Pólo Sul. E existe um campo magnético por causa disso. Um magnetômetro detecta esse campo magnético e, com base na direção do campo magnético, pode detectar a direção para a qual estamos olhando.
Como funciona o módulo do sensor HMC5883L
O HMC5883L sendo um sensor de magnetômetro faz a mesma coisa. Ele tem o IC HMC5883L que é da Honeywell. Este IC possui 3 materiais magneto-resistivos no seu interior, os quais estão dispostos nos eixos x, y e z. A quantidade de corrente que flui através desses materiais é sensível ao campo magnético da Terra. Portanto, ao medir a mudança na corrente que flui através desses materiais, podemos detectar a mudança no campo magnético da Terra. Uma vez que a mudança no campo magnético é absorvida, os valores podem ser enviados para qualquer controlador embutido como um microcontrolador ou processador através do protocolo I2C.
Como o sensor funciona detectando o campo magnético, os valores de saída serão bastante afetados se um metal for colocado nas proximidades. Esse comportamento pode ser aproveitado para usar esses sensores também como detectores de metal. Deve-se ter cuidado para não trazer ímãs perto deste sensor, pois o forte campo magnético de um ímã pode disparar valores falsos no sensor.
Diferença entre HMC5883L e QMC5883L
Existe uma confusão comum em torno desses sensores para muitos iniciantes. Isso ocorre porque alguns fornecedores (na verdade a maioria) vendem os sensores QMC5883L em vez do HMC5883L original da Honeywell. É principalmente porque o QMC5883L é muito mais barato do que o módulo HMC5883L. A parte triste é que o funcionamento desses dois sensores é ligeiramente diferente e o mesmo código não pode ser usado para ambos. Isso ocorre porque o endereço I2C de ambos os sensores não é o mesmo. O código fornecido neste tutorial funcionará apenas para QMC5883L, o módulo de sensor comumente disponível.
Para saber qual modelo de sensor você está usando, basta olhar atentamente para o próprio CI para ler o que está escrito em cima dele. Se for escrito algo como L883, então é o HMC58836L e se estiver escrito algo como DA5883, então é o IC QMC5883L. Ambos os módulos são mostrados na imagem abaixo para facilitar a compreensão.
Diagrama de circuito
O circuito para esta bússola digital baseada em Arduino é bastante simples, simplesmente temos que fazer a interface do sensor HMC5883L com o Arduino e conectar 8 LEDs aos pinos GPIO do Arduino Pro mini. O diagrama completo do circuito é mostrado abaixo
O módulo Sensor possui 5 pinos, dos quais o DRDY (Data Ready) não é utilizado em nosso projeto, pois estamos operando o sensor em modo contínuo. O Vcc e o pino de aterramento são usados para alimentar o Módulo com 5 V da placa Arduino. O SCL e o SDA são as linhas de barramento de comunicação I2C conectadas aos pinos I2C A4 e A5 do Arduino Pro mini, respectivamente. Como o próprio módulo possui um resistor de tração alta nas linhas, não há necessidade de adicioná-los externamente.
Para indicar a direção, usamos 8 LEDs, todos conectados aos pinos GPIO do Arduino por meio de um resistor limitador de corrente de 470 Ohms. O circuito completo é alimentado por uma bateria de 9V através do Jack barril. Este 9 V é fornecido diretamente ao pino Vin do Arduino, onde é regulado para 5 V usando o regulador integrado no Arduino. Esses 5 V são então usados para alimentar o sensor e o Arduino também.
Fabricação de PCBs para a bússola digital
A ideia do circuito é colocar os 8 LEDs de forma circular de forma que cada Led aponte todas as 8 direções, ou seja, Norte, Nordeste, Leste, Sudeste, Sul, Sudoeste, Oeste e Noroeste respectivamente. Portanto, não é fácil organizá-los perfeitamente em um breadboard ou mesmo em um perfboard. O desenvolvimento de uma PCB para este circuito fará com que pareça mais organizado e fácil de usar. Então, abri meu software de design de PCB e coloquei os LEDs e o resistor em um padrão circular organizado e conectei as trilhas para formar as conexões. Meu Design parecia mais ou menos assim quando concluído. Você também pode baixar o arquivo Gerber no link fornecido abaixo.
- Baixe o arquivo Gerber para Digital Compass PCB
Eu a projetei para ser uma placa lateral dupla, pois quero que o Arduino fique na parte inferior da minha PCB para que não prejudique a aparência na parte superior da minha PCB. Se você está preocupado com o fato de ter que pagar caro por um PCB de lado duplo, espere, tenho boas novidades chegando.
Agora que o nosso Design está pronto, é hora de fabricá-los. Para fazer o PCB é muito fácil, basta seguir as etapas abaixo
Etapa 1: Acesse www.pcbgogo.com, inscreva-se se esta for sua primeira vez. Então, na guia Protótipo de PCB, insira as dimensões de seu PCB, o número de camadas e o número de PCB que você precisa. Meu PCB tem 80cm × 80cm, então a guia se parece com esta abaixo
Etapa 2: Continue clicando no botão Citar Agora . Você será levado a uma página onde definir alguns parâmetros adicionais, se necessário, como o material usado, espaçamento entre pistas, etc. Mas principalmente os valores padrão funcionarão bem. A única coisa que devemos considerar aqui é o preço e o tempo. Como você pode ver, o Build Time é de apenas 2-3 dias e custa apenas US $ 5 para nosso PSB. Você pode então selecionar um método de envio preferido com base em sua necessidade.
Etapa 3: A última etapa é fazer o upload do arquivo Gerber e prosseguir com o pagamento. Para garantir que o processo está tranquilo, o PCBGOGO verifica se seu arquivo Gerber é válido antes de prosseguir com o pagamento. Dessa forma, você pode ter certeza de que seu PCB é amigável para a fabricação e chegará até você quando estiver comprometido.
Montagem do PCB
Depois que a placa foi encomendada, ela chegou até mim depois de alguns dias através do correio em uma caixa bem etiquetada e bem embalada e como sempre a qualidade do PCB era incrível. Estou compartilhando algumas fotos dos painéis abaixo para você julgar.
Liguei minha haste de solda e comecei a montar a placa. Como as pegadas, pads, vias e silkscreen são perfeitamente do tamanho e formato corretos, não tive problemas para montar a placa. A prancha ficou pronta em apenas 10 minutos a partir do momento de desempacotar a caixa.
Algumas fotos da placa após a soldagem são mostradas abaixo.
Programando o Arduino
Agora que nosso hardware está pronto, vamos dar uma olhada no programa que deve ser carregado em nossa placa Arduino. O objetivo do código é ler os dados do sensor do magnetômetro QMC5883L e convertê-los em graus (0 a 360). Depois de saber o grau, temos que ligar o LED apontando para uma direção específica. A direção que usei neste programa é o norte. Portanto, independentemente de onde você estiver , haverá apenas um LED brilhando em sua placa e a direção do LED indicará a direção NORTE. Uma vez que mais tarde poderia calcular a outra direção, uma direção é conhecida.
O código completo para este projeto Digital Compass pode ser encontrado no final desta página. Você pode carregá-lo diretamente em sua placa após incluir a biblioteca e você está pronto para começar. Mas, se você quiser saber