Índice:

Bússola e altímetro de LED: 7 etapas (com imagens)
Bússola e altímetro de LED: 7 etapas (com imagens)

Vídeo: Bússola e altímetro de LED: 7 etapas (com imagens)

Vídeo: Bússola e altímetro de LED: 7 etapas (com imagens)
Vídeo: Fiquei 2 anos sem cortar o cabelo! 2024, Julho
Anonim
Image
Image
Diagrama de circuito e PCB
Diagrama de circuito e PCB

Objetos com LEDs sempre me fascinam. Portanto, este projeto combina o popular sensor de bússola digital HMC5883L com 48 LEDs. Ao colocar os LEDs em um círculo, o LED que está acendendo é a direção para a qual você está indo. Cada 7,5 graus acionará um novo LED que fornece resultados detalhados.

A placa GY-86 também fornece um sensor de pressão barométrica MS5611. Com a ajuda deste sensor é possível calcular a altitude. Devido à alta resolução, é perfeito para altímetros.

O sensor MPU6050 na placa GY-86 possui um acelerômetro de 3 eixos e um giroscópio de 3 eixos. O giroscópio pode medir a velocidade da posição angular ao longo do tempo. O acelerômetro pode medir a aceleração gravitacional e usando matemática trigonometria é possível calcular o ângulo em que o sensor está posicionado. Ao combinar os dados do acelerômetro e do giroscópio, é possível obter informações sobre a orientação do sensor. Isso pode ser usado para a compensação de inclinação para a bússola HMC5883L (a fazer).

Os vídeos de instrução curtos neste instrutível irão explicar em detalhes como funciona. Os procedimentos de calibração são automatizados, portanto o sucesso é garantido. A temperatura está disponível em Celsius (padrão) ou Fahrenheit.

Divirta-se !!

Etapa 1: Altímetro

Image
Image

O altímetro usa o sensor de pressão barométrica MS5611. A altitude pode ser determinada com base na medição da pressão atmosférica. Quanto maior for a altitude, menor será a pressão. Na inicialização, o altímetro usa a pressão padrão ao nível do mar de 1013,25 mbar. Ao pressionar o botão no pino 21, a pressão em sua localização será usada como referência. Desta forma, torna-se possível medir aproximadamente a altura que algo tem (por exemplo, ao dirigir em uma subida com um carro).

A chamada "Fórmula Hypsometric" é usada neste projeto. Esta fórmula faz uso da temperatura para compensar a medição.

flutuante alt=((powf (fonte / ((flutuante) P / 100,0), 0,19022256) - 1,0) * ((flutuante) TEMP / 100 + 273,15)) / 0,0065;

Você pode encontrar mais sobre a fórmula hipsométrica aqui:

Fórmula hipsométrica

Os dados de calibração de fábrica e a temperatura do sensor são lidos no sensor MS5611 e aplicados ao código para obter as medições mais precisas. Durante o teste, descobri que o sensor MS5611 é sensível a fluxos de ar e diferenças na intensidade da luz. Deve ser possível obter melhores resultados do que neste vídeo de instrução.

Etapa 2: peças

1 x Microchip 18f26k22 microcontrolador 28-PIN PDIP

3 x MCP23017 Expansor de E / S de 16 bits SPDIP de 28 pinos

48 x LEDs 3mm

1 x módulo GY-86 com sensores MS5611, HMC5883L e MPU6050

1 x SH1106 OLED 128x64 I2C

1 x capacitor de cerâmica 100nF

1 x resistor de 100 Ohm

Etapa 3: Diagrama de circuito e PCB

Diagrama de circuito e PCB
Diagrama de circuito e PCB

Tudo cabe em um PCB de um único lado. Encontre aqui os arquivos Eagle e Gerber para que você mesmo possa fazer ou pergunte a um fabricante de PCBs.

Eu uso a bússola e o altímetro de LED no meu carro e uso a interface OBD2 como fonte de alimentação. O microcontrolador encaixa perfeitamente no conector.

Etapa 4: Como alinhar perfeitamente os LEDs em um círculo em segundos com o software Eagle PCB Design

Você deve ver este recurso realmente bom no Eagle PCB Design Software que economiza horas de trabalho. Com este recurso Eagle, você pode alinhar perfeitamente os LEDs em um círculo em segundos.

Basta clicar na guia "Arquivo" e depois em "Executar ULP". A partir daqui, clique em "cmd-draw.ulp". Selecione "Mover", "passo de grau" e "Círculo". Preencha o nome do primeiro LED no campo "nome". Defina as coordenadas do centro do círculo na grade nos campos "Coordenada do centro X" e "Coordenada do centro Y". Neste projeto estão 48 LEDs, então 360 dividido por 48 dá 7,5 para o campo "Passo angular". O raio deste círculo é 1,4 polegadas. Pressione Enter e você terá um círculo perfeito de LEDs.

Etapa 5: Processo de calibração da bússola

Image
Image

O HMC5883L inclui um ADC de 12 bits que permite a precisão do rumo da bússola de 1 a 2 graus Celsius. Mas antes de fornecer dados utilizáveis, ele precisa ser calibrado. Para ter este projeto instalado e funcionando sem problemas, existe este método de calibração que fornece deslocamento x e y. Não é o método mais sofisticado, mas é suficiente para este projeto. Este procedimento custará apenas alguns minutos e oferece bons resultados.

Ao carregar e executar este software, você será guiado neste processo de calibração. O display OLED informará quando o processo começará e quando terminará. Este processo de calibração solicitará que você gire o sensor 360 graus, mantendo-o absolutamente plano (horizontal ao solo). Monte-o em um tripé ou algo parecido. Fazer isso segurando-o na mão não funciona. No final, os deslocamentos serão apresentados no OLED. Se você executar este procedimento várias vezes, deverá ver resultados quase iguais.

Opcionalmente, os dados coletados também estão disponíveis via RS232 via pino 27 (9600 baud). Basta usar um programa de terminal como o Putty e coletar todos os dados no arquivo de log. Esses dados podem ser importados facilmente no Excel. A partir daqui, você pode ver mais facilmente como é o deslocamento de seu HMC5883L.

Os offsets são colocados na EEPROM do microcontrolador. Eles serão carregados na inicialização do software de bússola e altímetro que você encontrará na etapa 7.

Etapa 6: Compense a declinação magnética de sua localização

Image
Image
Concurso de Sensores
Concurso de Sensores

Existe um Norte magnético e um Norte geográfico (Pólo Norte). Sua bússola seguirá as linhas do campo magnético da Terra, portanto, aponte para o Norte magnético. A diferença entre o Norte magnético e o Norte geográfico é chamada de declinação magnética. Na minha localização, a declinação é de apenas 1 grau e 22 minutos, então não vale a pena compensar isso. Em outros locais, essa declinação pode ser de até 30 graus.

Encontre a declinação magnética em sua localização

Se você quiser compensar isso (é opcional), você pode adicionar a declinação (graus e minutos) na EEPROM do microcontrolador. Na localização 0x20, você pode adicionar os graus na forma hexadecimal com sinal. Está assinado porque também pode ser uma declinação negativa. Na localização 0x21, você pode adicionar os minutos também na forma hexadecimal.

Etapa 7: compilar o código

Image
Image

Compile este código-fonte e programe seu microcontrolador. Este código é compilado corretamente com MPLABX IDE v5.20 e XC8 compilador v2.05 no modo C99 (portanto, inclua os diretórios C99). Além disso, o arquivo hexadecimal está disponível para que você possa pular o procedimento de compilação. Certifique-se de desmarcar a caixa de seleção "Dados EEPROM habilitados" para evitar que os dados de calibração (consulte a etapa 5) sejam substituídos. Defina o seu programador para 3,3 volts!

Ao conectar o pino 27 ao aterramento, você obtém a temperatura em Fahrenheit.

Agradecimentos a Achim Döbler por sua biblioteca gráfica µGUI

Concurso de Sensores
Concurso de Sensores

Vice-campeão no concurso de sensores

Recomendado: