Sommario:
- Passaggio 1: hardware richiesto:
- Passaggio 2: collegamento hardware:
- Passaggio 3: codice Java per misurare l'intensità del campo magnetico:
- Passaggio 4: applicazioni:
Video: Misurazione del campo magnetico utilizzando HMC5883 e Raspberry Pi: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
L'HMC5883 è una bussola digitale progettata per il rilevamento magnetico a basso campo. Questo dispositivo ha un'ampia gamma di campi magnetici di +/-8 Oe e una velocità di uscita di 160 Hz. Il sensore HMC5883 include driver della cinghia di smagnetizzazione automatica, cancellazione dell'offset e un ADC a 12 bit che consente una precisione di rotta della bussola da 1° a 2°. Tutti i Mini Moduli I²C sono progettati per funzionare a 5VDC.
In questo tutorial, spiegheremo il funzionamento dettagliato di HMC5883 con Raspberry pi e la sua programmazione utilizzando il linguaggio di programmazione java.
Passaggio 1: hardware richiesto:
L'hardware necessario per eseguire l'attività è il seguente:
1. HMC5883
2. Raspberry Pi
3. Cavo I2C
4. Scudo I2C per Raspberry Pi
5. Cavo Ethernet
Passaggio 2: collegamento hardware:
La sezione relativa ai collegamenti hardware spiega sostanzialmente le connessioni di cablaggio necessarie tra il sensore e il Raspberry Pi. Garantire connessioni corrette è la necessità di base mentre si lavora su qualsiasi sistema per l'output desiderato. Quindi, i collegamenti necessari sono i seguenti:
L'HMC5883 funzionerà su I2C. Ecco lo schema elettrico di esempio, che mostra come cablare ciascuna interfaccia del sensore.
Di default, la scheda è configurata per un'interfaccia I2C, quindi consigliamo di utilizzare questo collegamento se sei altrimenti agnostico. Tutto ciò di cui hai bisogno sono quattro fili!
Sono necessarie solo quattro connessioni pin Vcc, Gnd, SCL e SDA e questi sono collegati con l'aiuto del cavo I2C.
Queste connessioni sono mostrate nelle immagini sopra.
Passaggio 3: codice Java per misurare l'intensità del campo magnetico:
Il vantaggio di utilizzare raspberry pi è che ti offre la flessibilità del linguaggio di programmazione in cui desideri programmare la scheda per interfacciare il sensore con essa. Sfruttando questo vantaggio di questa scheda, stiamo dimostrando qui che è la programmazione in Java. Il codice java per HMC5883 può essere scaricato dalla nostra comunità github che è Dcube Store.
Oltre che per la facilità degli utenti, spieghiamo anche qui il codice:
Come primo passo della codifica, devi scaricare la libreria pi4j in caso di java, perché questa libreria supporta le funzioni utilizzate nel codice. Quindi, per scaricare la libreria puoi visitare il seguente link:
pi4j.com/install.html
Puoi copiare il codice Java funzionante per questo sensore anche da qui:
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
mport com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;classe pubblica HMC5883
{
public static void main(String args) genera un'eccezione
{
// Crea bus I2C
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// Ottieni il dispositivo I2C, l'indirizzo I2C dell'HMC5883 è 0x1E(30)
I2CDevice device = Bus.getDevice(0x1E);
// Seleziona il registro di configurazione A
// Configurazione di misura normale, velocità dati o/p = 0,75 Hz
device.write(0x00, (byte)0x60);
// Seleziona modalità registro
// Modalità di misurazione continua
device.write(0x02, (byte)0x00);
Thread.sleep(500);
// Legge 6 byte di dati da 0x03(3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
byte dati = nuovo byte[6];
device.read(0x03, data, 0, 6);
// Converti i dati
int xMag = ((data[0] & 0xFF) * 256 + (data[1] & 0xFF));
if(xMag > 32767)
{
xMag -= 65536;
}
int zMag = ((data[2] & 0xFF) * 256 + (data[3] & 0xFF));
if(zMag > 32767)
{
zMag -= 65536;
}
int yMag = ((data[4] & 0xFF) * 256 + (data[5] & 0xFF));
if(yMag > 32767)
{
yMag -= 65536;
}
// Invia i dati allo schermo
System.out.printf("Campo magnetico nell'asse X: %d %n", xMag);
System.out.printf("Campo magnetico nell'asse Y: %d %n", yMag);
System.out.printf("Campo magnetico nell'asse Z: %d %n", zMag);
}
}
Le funzioni Write() e read() vengono utilizzate rispettivamente per scrivere i comandi e leggere l'output del sensore. La parte seguente illustra la lettura dei valori del campo magnetico.
// Legge 6 byte di dati da 0x03(3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
byte dati = nuovo byte[6];
device.read(0x03, data, 0, 6);
L'output è mostrato nell'immagine sopra.
Passaggio 4: applicazioni:
HMC5883 è un modulo multi-chip a montaggio superficiale progettato per il rilevamento magnetico a basso campo con un'interfaccia digitale per applicazioni come la bussola e la magnetometria a basso costo. La sua accuratezza e precisione di alto livello da uno a due gradi consente la navigazione pedonale e le applicazioni LBS.
Consigliato:
Misurazione del campo magnetico utilizzando HMC5883 e Arduino Nano: 4 passaggi
Misurazione del campo magnetico utilizzando HMC5883 e Arduino Nano: HMC5883 è una bussola digitale progettata per il rilevamento magnetico a basso campo. Questo dispositivo ha un'ampia gamma di campi magnetici di +/-8 Oe e una velocità di uscita di 160 Hz. Il sensore HMC5883 include driver della cinghia di smagnetizzazione automatica, cancellazione dell'offset e un
Misurazione del campo magnetico utilizzando HMC5883 e fotone particellare: 4 passaggi
Misurazione del campo magnetico mediante HMC5883 e fotone di particelle: HMC5883 è una bussola digitale progettata per il rilevamento magnetico a basso campo. Questo dispositivo ha un'ampia gamma di campi magnetici di +/-8 Oe e una velocità di uscita di 160 Hz. Il sensore HMC5883 include driver della cinghia di smagnetizzazione automatica, cancellazione dell'offset e un
Tutorial: come attivare l'allarme della porta utilizzando l'allarme del sensore dell'interruttore magnetico MC-18: 3 passaggi
Tutorial: come creare un allarme porta utilizzando l'allarme del sensore dell'interruttore magnetico MC-18: Ciao ragazzi, sto per fare un tutorial sull'allarme del sensore dell'interruttore magnetico MC-18 che funziona in modalità normalmente chiusa. Ma prima, lasciate che vi spieghi in breve cosa si intende per normalmente vicino. Esistono due tipi di modalità, normalmente aperta e normalmente chiusa
Misurazione del contenuto di umidità del suolo utilizzando la piattaforma Esp32 e Thingsio.ai: 6 passaggi
Misurazione del contenuto di umidità del suolo utilizzando la piattaforma Esp32 e Thingsio.ai: in questo tutorial spiegherò la lettura del contenuto di umidità nel suolo utilizzando esp32 e quindi l'invio dei valori alla piattaforma cloud IoT thingsio.ai
Sensore di campo magnetico a 3 assi: 10 passaggi (con immagini)
Sensore di campo magnetico a 3 assi: i sistemi di trasferimento di potenza wireless sono sulla buona strada per sostituire la ricarica cablata convenzionale. Dai minuscoli impianti biomedici fino alla ricarica wireless di enormi veicoli elettrici. Una parte integrante della ricerca sull'alimentazione wireless è