Índice:
- Etapa 1: reunir suprimentos
- Etapa 2: Fiação
- Etapa 3: teste a tela
- Etapa 4: o código do magnetômetro
- Etapa 5: Trabalho Futuro
Vídeo: Magnetômetro Arduino: 5 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:37
O que estamos construindo?
Os humanos não conseguem detectar campos magnéticos, mas usamos dispositivos que dependem de ímãs o tempo todo. Motores, bússolas, sensores de rotação e turbinas eólicas, por exemplo, requerem ímãs para operação. Este tutorial descreve como construir um magnetômetro baseado em Arduino que detecta o campo magnético usando três sensores de efeito Hall. O vetor do campo magnético em um local é exibido em uma pequena tela usando projeção isométrica.
O que é um Arduino?
Um Arduino é um pequeno microcontrolador de código aberto amigável. Possui pinos de entrada e saída digitais. Ele também possui pinos de entrada analógica, que são úteis para ler a entrada de sensores. Diferentes modelos de Arduino estão disponíveis. Este tutorial descreve como usar o Arduino Uno ou o Arduino MKR1010. No entanto, outros modelos também podem ser usados.
Antes de começar este tutorial, baixe o ambiente de desenvolvimento Arduino, bem como quaisquer bibliotecas necessárias para seu modelo específico. O ambiente de desenvolvimento está disponível em https://www.arduino.cc/en/main/software, e as instruções de instalação estão disponíveis em
O que é um campo magnético?
Os ímãs permanentes exercem forças sobre outros ímãs permanentes. Os fios condutores de corrente exercem forças sobre outros fios condutores de corrente. Ímãs permanentes e fios condutores de corrente também exercem forças uns sobre os outros. Esta força por corrente de teste de unidade é um campo magnético.
Se medirmos o volume de um objeto, obtemos um único número escalar. No entanto, o magnetismo é descrito por um campo vetorial, uma quantidade mais complicada. Primeiro, varia com a posição em todo o espaço. Por exemplo, o campo magnético a um centímetro de um ímã permanente é provavelmente maior do que o campo magnético a dez centímetros de distância.
Em seguida, o campo magnético em cada ponto no espaço é representado por um vetor. A magnitude do vetor representa a força do campo magnético. A direção é perpendicular à direção da força e à direção da corrente de teste.
Podemos imaginar o campo magnético em um único local como uma seta. Podemos imaginar o campo magnético em todo o espaço por uma série de setas em diferentes locais, possivelmente de diferentes tamanhos e apontando em diferentes direções. Uma boa visualização está disponível em https://www.falstad.com/vector3dm/. O magnetômetro que estamos construindo exibe o campo magnético na localização dos sensores como uma seta no visor.
O que é um sensor de efeito Hall e como ele funciona?
Um sensor de efeito Hall é um dispositivo pequeno e barato que mede a força do campo magnético ao longo de uma direção específica. É feito de um pedaço de semicondutor dopado com cargas em excesso. A saída de alguns sensores de efeito Hall é uma tensão analógica. Outros sensores de efeito Hall têm um comparador integrado e produzem uma saída digital. Outros sensores de efeito Hall são integrados em instrumentos maiores que medem a taxa de fluxo, velocidade de rotação ou outras quantidades.
A física por trás do efeito Hall é resumida pela equação de força de Lorentz. Esta equação descreve a força em uma carga móvel devido a um campo elétrico e magnético externo.
A figura abaixo ilustra o efeito Hall. Suponha que queremos medir a força do campo magnético na direção da seta azul. Conforme mostrado na parte esquerda da figura, aplicamos uma corrente através de um pedaço de semicondutor perpendicular à direção do campo a ser medido. A corrente é o fluxo de cargas, então uma carga no semicondutor se move com alguma velocidade. Esta carga sentirá uma força devida ao campo externo, conforme mostrado na parte central da figura. As cargas se moverão devido à força e se acumularão nas bordas do semicondutor. As cargas aumentam até que a força devida às cargas acumuladas equilibra a força devida ao campo magnético externo. Podemos medir a tensão no semicondutor, conforme mostrado na parte direita da figura. A tensão medida é proporcional à força do campo magnético, e está na direção perpendicular à corrente e à direção do campo magnético.
O que é projeção isométrica?
Em cada ponto do espaço, o campo magnético é descrito por um vetor tridimensional. No entanto, nossa tela é bidimensional. Podemos projetar o vetor tridimensional em um plano bidimensional para que possamos desenhá-lo na tela. Existem várias maneiras de fazer isso, como projeção isométrica, projeção ortográfica ou projeção oblíqua.
Na projeção isométrica, os eixos x, y e z estão separados por 120 graus e aparecem igualmente reduzidos. Informações adicionais sobre a projeção isométrica, bem como as fórmulas necessárias, podem ser encontradas na página da Wikipedia sobre o assunto.
Etapa 1: reunir suprimentos
Arduino e cabo
O Arduino é o cérebro do magnetômetro. Estas instruções descrevem como usar um Arduino Uno ou um Arduino MKR1010. Em ambos os casos, é necessário um cabo para conectá-lo ao computador.
Opção 1: Arduino Uno e cabo USB AB
www.digikey.com/product-detail/en/arduino/A000066/1050-1024-ND/2784006
www.digikey.com/product-detail/en/stewart-connector/SC-2ABE003F/380-1424-ND/8544570
Opção 2: Arduino MKR1010 e cabo microUSB
www.digikey.com/product-detail/en/arduino/ABX00023/1050-1162-ND/9486713
www.digikey.com/product-detail/en/stewart-connector/SC-2AMK003F/380-1431-ND/8544577
Display TFT
TFT significa Thin Film Transistor. Esta tela de 1,44 contém 128 por 128 pixels. É pequena, brilhante e colorida. Ela vem conectada a uma placa breakout. No entanto, os pinos de cabeçalho vêm separados, então você precisa soldá-los. (A solda e um ferro de solda são precisava.)
www.digikey.com/product-detail/en/adafruit-industries-llc/2088/1528-1345-ND/5356830
- Sensores de efeito Hall analógico
São necessários três sensores de efeito Hall. O link abaixo é para o número da peça Allegro A1324LUA-T. Para este sensor, o pino 1 é a tensão de alimentação, o pino 2 é o aterramento e o pino 3 é a saída. Outros sensores Hall também devem funcionar, mas certifique-se de que sejam analógicos, não digitais. Se você usar um sensor diferente, verifique a pinagem e ajuste a fiação, se necessário. (Na verdade, usei um sensor diferente da mesma empresa para fins de teste. No entanto, o que usei é obsoleto e este sensor é seu substituto.)
www.digikey.com/product-detail/en/allegro-microsystems-llc/A1324LUA-T/620-1432-ND/2728144
Tábua de ensaio pequena e fio
www.digikey.com/product-detail/en/adafruit-industries-llc/239/1528-2143-ND/7244929
Ímãs permanentes para teste
Imãs de geladeira funcionam bem.
Etapa 2: Fiação
Solde os cabeçalhos na tela.
Coloque os sensores em uma extremidade da placa de ensaio e coloque o display e o Arduino na extremidade oposta. A corrente nos fios do Arduino e do display geram campos magnéticos, que não queremos que os sensores leiam. Além disso, podemos querer colocar os sensores perto de ímãs permanentes, o que pode impactar adversamente a corrente nos fios do visor e do sensor. Por essas razões, queremos os sensores longe da tela e do Arduino. Também por essas razões, este magnetômetro deve ser mantido longe de campos magnéticos muito fortes.
Coloque os sensores perpendiculares entre si, mas o mais próximos possível. Dobre suavemente os sensores para deixá-los perpendiculares. Cada pino de cada sensor deve estar em uma linha separada da placa de ensaio para que possa ser conectado separadamente.
A fiação é ligeiramente diferente entre o MKR1010 e o Uno por dois motivos. Primeiro, o Arduino e o display se comunicam por SPI. Diferentes modelos de Arduino têm diferentes pinos dedicados para certas linhas SPI. Em segundo lugar, as entradas analógicas do Uno podem aceitar até 5 V, enquanto as entradas analógicas do MKR1010 podem aceitar apenas até 3,3 V. A tensão de alimentação recomendada para os sensores de efeito Hall é de 5 V. As saídas do sensor são conectadas às entradas analógicas do Arduino, e estes podem ser tão grandes quanto as tensões de alimentação. Para o Uno, use a alimentação de 5 V recomendada para os sensores. Para o MKR1010, use 3,3 V para que a entrada analógica do Arduino nunca veja uma tensão maior do que ela pode suportar.
Siga os diagramas e instruções abaixo para o Arduino que você está usando.
Fiação com o Arduino Uno
O display possui 11 pinos. Conecte-os ao Arduino Uno da seguinte maneira. (NC significa não conectado.)
- Vin → 5V
- 3,3 → NC
- Gnd → GND
- SCK → 13
- SO → NC
- SI → 11
- TCS → 10
- RST → 9
- D / C → 8
- CCS → NC
- Lite → NC
Conecte o Vin dos sensores a 5V do Arduino. Conecte o aterramento do sensor ao aterramento do Arduino. Conecte a saída dos sensores às entradas analógicas A1, A2 e A3 do Arduino.
Fiação com o Arduino MKR1010
O display possui 11 pinos. Conecte-os ao Arduino da seguinte maneira. (NC significa não conectado.)
- Vin → 5V
- 3,3 → NC
- Gnd → GND
- SCK → SCK 9
- SO → NC
- SI → MOSI 8
- TCS → 5
- RST → 4
- D / C → 3
- CCS → NC
- Lite → NC
Conecte o Vin dos sensores ao Vcc do Arduino. Este pino está em 3,3V, não 5V. Conecte o aterramento do sensor ao aterramento do Arduino. Conecte a saída dos sensores às entradas analógicas A1, A2 e A3 do Arduino.
Etapa 3: teste a tela
Vamos fazer o display TFT funcionar. Felizmente, Adafruit tem algumas bibliotecas amigáveis e um excelente tutorial para acompanhá-las. Essas instruções seguem de perto o tutorial, Abra o ambiente de desenvolvimento Arduino. Vá para Ferramentas → Gerenciar Bibliotecas. Instale as bibliotecas Adafruit_GFX, Adafruit_ZeroDMA e Adafruit_ST7735. Reinicie o ambiente de desenvolvimento Android.
O exemplo graphicstest está incluído nas bibliotecas. Abra. Arquivo → Exemplos → Biblioteca Adafruit ST7735 e ST7789 → teste gráfico. Para selecionar a linha 95 de comentário de exibição de 1,44 e a linha 98 de descomentar.
Versão original:
94 // Use este inicializador se estiver usando uma tela TFT de 1,8 :
95 tft.initR (INITR_BLACKTAB); // Chip Init ST7735S, guia preta 96 97 // OU use este inicializador (descomente) se estiver usando um 1.44 TFT: 98 //tft.initR(INITR_144GREENTAB); // Chip Init ST7735R, guia verde
Versão correta para display de 1,44 :
94 // Use este inicializador se estiver usando uma tela TFT de 1,8 :
95 //tft.initR(INIT_BLACKTAB); // Chip Init ST7735S, guia preta 96 97 // OU use este inicializador (descomente) se estiver usando um 1.44 TFT: 98 tft.initR (INITR_144GREENTAB); // Chip Init SST35R, guia verde
O display se comunica usando SPI, e diferentes modelos de Arduinos usam diferentes pinos dedicados para algumas linhas de comunicação. O exemplo graphicstest é configurado para funcionar com os pinos Uno. Se você estiver usando o MKR1010, adicione as seguintes linhas entre as linhas 80 e 81.
Correções para o MKR1010:
80
#define TFT_CS 5 #define TFT_RST 4 #define TFT_DC 3 #define TFT_MOSI 8 #define TFT_SCLK 9 Adafruit_ST7735 tft = Adafruit_ST7735 (TFT_CS, TFT_DC, TFT_MOSI, TFT_SCLK, TFT_RST); 81 float p = 3,1415926;
Salve o exemplo de teste gráfico modificado. Conecte o Arduino ao computador, caso ainda não tenha feito isso. Vá para Ferramentas → Placa e ferramentas → Porta para verificar se o computador pode encontrar o Arduino. Vá para Sketch → Upload. Se o exemplo funcionar, o visor mostrará linhas, retângulos, texto e a demonstração completa. O tutorial Adafruit fornece mais detalhes se a solução de problemas for necessária.
Etapa 4: o código do magnetômetro
Baixe o código em anexo e abra-o no ambiente de desenvolvimento do Arduino.
Este programa usa seis funções:
Setup () inicializa o display
Loop () contém o loop principal do programa. Ele escurece a tela, desenha os eixos, lê as entradas e desenha a seta que representa o vetor do campo magnético. Tem uma taxa de atualização de um segundo que pode ser alterada alterando a linha 127
DrawAxes3d () desenha e rotula os eixos x, y e z
DrawArrow3d () leva em uma entrada x, y e z variando de 0 a 1023. A partir desses valores, ele calcula os pontos finais da seta no espaço. Em seguida, ele usa as funções isometricxx () e isometricyy () para calcular os pontos finais na tela. Por fim, ele desenha a seta e imprime as tensões na parte inferior da tela
Isometricxx () encontra a coordenada x da projeção isométrica. Ele obtém as coordenadas x, y e z de um ponto e retorna a localização do pixel x correspondente na tela
Isometricyy () encontra a coordenada y da projeção isométrica. Ele obtém as coordenadas x, y e z de um ponto e retorna a localização do pixel y correspondente na tela
Antes de executar o código, precisamos especificar quais pinos usar para comunicação SPI com o monitor e precisamos especificar a tensão da fonte para os sensores. Se você estiver usando o MKR1010, comente as linhas 92-96 e também a linha 110. Em seguida, descomente as linhas 85-89 e também a linha 108. Se você estiver usando o Uno, comente as linhas 85-89 e também a linha 108. Em seguida, descomente as linhas 92-96, bem como a linha 110.
Faça upload do código, Sketch → Upload.
Você deve ver os eixos x, y e z em vermelho. Uma seta verde com um círculo azul para a ponta representa o vetor do campo magnético nos sensores. As leituras de tensão são exibidas no canto inferior esquerdo. Conforme você aproxima um ímã dos sensores, as leituras de voltagem devem mudar e o tamanho da seta deve aumentar.
Etapa 5: Trabalho Futuro
A próxima etapa seria calibrar o dispositivo. A folha de dados do sensor fornece informações sobre como converter os valores brutos de tensão do sensor em força do campo magnético. A calibração pode ser verificada por comparação com um magnetômetro mais preciso.
Os ímãs permanentes interagem com os fios condutores de corrente. Fios próximos ao display e no Arduino geram campos magnéticos que podem afetar as leituras do sensor. Além disso, se este dispositivo for usado para medir perto de um ímã permanente forte, o campo magnético do dispositivo em teste irá interagir, introduzir ruído e possivelmente danificar o Arduino e a tela. A blindagem poderia tornar este magnetômetro mais robusto. O Arduino pode suportar campos magnéticos maiores se for blindado em uma caixa de metal, e menos ruído será introduzido se cabos blindados conectarem os sensores em vez de fios desencapados.
O campo magnético é uma função da posição, por isso é diferente em cada ponto do espaço. Este dispositivo usa três sensores, um para medir o componente x, o y e o z do campo magnético em um ponto. Os sensores estão próximos uns dos outros, mas não em um único ponto, e isso limita a resolução do magnetômetro. Seria legal salvar as leituras do campo magnético em diferentes pontos e depois exibi-las como uma série de setas nos locais correspondentes. No entanto, esse é um projeto para outro dia.
Referências
Informações sobre as bibliotecas de gráficos Adafruit Arduino
https://learn.adafruit.com/adafruit-1-44-color-tft-with-micro-sd-socket/overview
Visualização de campo magnético
https://www.falstad.com/vector3dm/
Informações sobre sensores de efeito Hall e efeito Hall
- https://sensing.honeywell.com/index.php?ci_id=47847
- https://www.allegromicro.com/~/media/Files/Datasheets/A1324-5-6-Datasheet.ashx
Informações sobre projeção isométrica
- https://en.wikipedia.org/wiki/3D_projection
- https://en.wikipedia.org/wiki/Isometric_projection
Recomendado:
Magnetômetro portátil: 7 etapas (com fotos)
Magnetômetro portátil: Um magnetômetro, às vezes também chamado de Gaussmeter, mede a força do campo magnético. É uma ferramenta essencial para testar a força de ímãs permanentes e eletroímãs e para compreender a forma do campo de configurações de ímã não triviais
Bússola digital usando Arduino e magnetômetro HMC5883L: 6 etapas
Bússola digital usando Arduino e magnetômetro HMC5883L: Oi pessoal, Este sensor pode indicar o Norte geográfico, Sul, Leste e Oeste, nós humanos também podemos usá-lo quando necessário. Então. Neste artigo, vamos tentar entender como funciona o sensor de magnetômetro e como fazer a interface com um microcontro
Como desmontar um computador com etapas e imagens fáceis: 13 etapas (com imagens)
Como desmontar um computador com etapas e imagens fáceis: Esta é uma instrução sobre como desmontar um PC. A maioria dos componentes básicos é modular e facilmente removível. No entanto, é importante que você seja organizado sobre isso. Isso ajudará a evitar que você perca peças e também a fazer a remontagem e
Calibração fácil do magnetômetro de ferro duro e macio: 6 etapas (com fotos)
Calibração fácil de magnetômetro de ferro duro e macio: Se seu hobby é RC, drones, robótica, eletrônica, realidade aumentada ou similar, então mais cedo ou mais tarde você se encontrará com a tarefa de calibração de magnetômetro. Qualquer módulo de magnetômetro deve ser calibrado, pois a medição do campo magnético subjec
Simulador de jogo do smartphone - jogue jogos do Windows usando o controle de gestos IMU, acelerômetro, giroscópio, magnetômetro: 5 etapas
SmartPhone Game Simulator- Jogue jogos do Windows usando Gesture Control IMU, acelerômetro, giroscópio, magnetômetro: Apoie este projeto: https://www.paypal.me/vslcreations doando para códigos de código aberto & suporte para maior desenvolvimento