Kazalo:

Merjenje magnetnega polja z uporabo HMC5883 in fotona delcev: 4 koraki
Merjenje magnetnega polja z uporabo HMC5883 in fotona delcev: 4 koraki

Video: Merjenje magnetnega polja z uporabo HMC5883 in fotona delcev: 4 koraki

Video: Merjenje magnetnega polja z uporabo HMC5883 in fotona delcev: 4 koraki
Video: Стефон Александр: Изучение теории струн с нуля 2024, Julij
Anonim
Image
Image

HMC5883 je digitalni kompas, zasnovan za magnetno zaznavanje nizkih polj. Ta naprava ima široko območje magnetnega polja +/- 8 Oe in izhodno hitrost 160 Hz. Senzor HMC5883 vključuje gonilnike trakov za samodejno razmagliciranje, preklic zamika in 12-bitni ADC, ki omogoča natančnost smeri kompasa od 1 ° do 2 °. Vsi mini moduli I²C so zasnovani za delovanje pri 5VDC.

V tej vadnici bomo razložili podrobno delovanje HMC5883 s fotonom delcev. Foton delcev je plošča, ki omogoča pošiljanje in sprejemanje podatkov s spletnega mesta, ki podpira najosnovnejšo funkcijo interneta stvari (IoT).

1. korak: Potrebna strojna oprema:

Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema
Potrebna strojna oprema

Materiali, ki jih potrebujemo za dosego našega cilja, vključujejo naslednje komponente strojne opreme:

1. HMC5883

2. Foton delcev

3. Kabel I2C

4. I2C ščit za fotone delcev

2. korak: Priključitev strojne opreme:

Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme
Priključitev strojne opreme

Oddelek za priključitev strojne opreme v bistvu razlaga potrebne povezave ožičenja med senzorjem in fotonom delcev. Zagotavljanje pravilnih povezav je osnovna potreba pri delu na katerem koli sistemu za želeni izhod. Torej so potrebne povezave naslednje:

HMC5883 bo deloval preko I2C. Tu je primer sheme ožičenja, ki prikazuje, kako povezati vsak vmesnik senzorja.

Plošča je že pripravljena za vmesnik I2C, zato priporočamo uporabo te povezave, če niste agnostični. Vse kar potrebujete so štiri žice!

Potrebne so le štiri povezave Vcc, Gnd, SCL in SDA, ki so povezane s kablom I2C.

Te povezave so prikazane na zgornjih slikah.

3. korak: Koda za merjenje intenzivnosti magnetnega polja:

Koda za merjenje jakosti magnetnega polja
Koda za merjenje jakosti magnetnega polja

Začnimo s kodo delcev.

Med uporabo senzorskega modula z Arduinom vključujemo knjižnico application.h in spark_wiring_i2c.h. Knjižnica "application.h" in spark_wiring_i2c.h vsebuje funkcije, ki olajšajo komunikacijo i2c med senzorjem in delcem.

Za udobje uporabnika je spodaj navedena celotna koda delcev:

#vključi

#vključi

// Naslov I2C HMC5883 je 0x1E (30)

#define Addr 0x1E

int xMag = 0, yMag = 0, zMag = 0;

void setup ()

{

// Nastavi spremenljivko

Particle.variable ("i2cdevice", "HMC5883");

Delci.variable ("xMag", xMag);

Delci.variable ("yMag", yMag);

Delci.variable ("zMag", zMag);

// Inicializirajte komunikacijo I2C kot MASTER

Wire.begin ();

// Začetek serijske komunikacije, nastavljena hitrost prenosa = 9600

Serial.begin (9600);

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite konfiguracijski register A

Wire.write (0x00);

// Nastavite običajno konfiguracijo merjenja, izhodna hitrost podatkov = 0,75Hz

Wire.write (0x60);

// Ustavi prenos I2C

Wire.endTransmission ();

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite register načina

Wire.write (0x02);

// Nastavi neprekinjeno merjenje

Wire.write (0x00);

// Ustavi prenos I2C

Wire.endTransmission ();

zamuda (300);

}

void loop ()

{

podpisani int podatki [6];

// Zagon prenosa I2C

Wire.beginTransmission (Addr);

// Izberite register podatkov

Wire.write (0x03);

// Ustavi prenos I2C

Wire.endTransmission ();

// Zahtevajte 6 bajtov podatkov

Wire.requestFrom (Addr, 6);

// Preberite 6 bajtov podatkov

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

če (Wire.available () == 6)

{

podatki [0] = Wire.read ();

podatki [1] = Wire.read ();

podatki [2] = Wire.read ();

podatki [3] = Wire.read ();

podatki [4] = Wire.read ();

podatki [5] = Wire.read ();

}

zamuda (300);

// Pretvorimo podatke

xMag = ((podatki [0] * 256) + podatki [1]);

če (xMag> 32767)

{

xMag -= 65536;

}

zMag = ((podatki [2] * 256) + podatki [3]);

če (zMag> 32767)

{

zMag -= 65536;

}

yMag = ((podatki [4] * 256) + podatki [5]);

če (yMag> 32767)

{

yMag -= 65536;

}

// Izhod podatkov na nadzorno ploščo

Particle.publish ("Magnetno polje v osi X:", niz (xMag));

zamuda (1000);

Particle.publish ("Magnetno polje v osi Y:", niz (yMag));

zamuda (1000);

Particle.publish ("Magnetno polje v osi Z:", niz (zMag));

zamuda (1000);

}

Funkcija Particle.variable () ustvari spremenljivke za shranjevanje izhoda senzorja, funkcija Particle.publish () pa prikaže izpis na nadzorni plošči spletnega mesta.

Izhod senzorja je za vašo referenco prikazan na zgornji sliki.

4. korak: Aplikacije:

Aplikacije
Aplikacije

HMC5883 je površinsko nameščen modul z več čipi, zasnovan za magnetno zaznavanje nizkih polj z digitalnim vmesnikom za aplikacije, kot sta poceni kompas in magnetometrija. Njegova natančnost in natančnost od ene do dveh stopinj omogočata navigacijo za pešce in aplikacije LBS.

Priporočena: