INHOUDSOPGAWE:
- Stap 1: hardeware benodig:
- Stap 2: Hardeware -aansluiting:
- Stap 3: Java -kode om die intensiteit van die magnetiese veld te meet:
- Stap 4: Aansoeke:
Video: Magnetiese veldmeting met behulp van HMC5883 en Framboos Pi: 4 stappe
2024 Outeur: John Day | [email protected]. Laas verander: 2024-01-30 07:24
Die HMC5883 is 'n digitale kompas wat ontwerp is vir magnetiese waarneming met lae veld. Hierdie toestel het 'n wye magnetiese veldbereik van +/- 8 Oe en 'n uitsetsnelheid van 160 Hz. Die HMC5883-sensor bevat outomatiese riembestuurders vir ontkoppeling, kansellering van offset en 'n 12-bis ADC wat akkuraatheid van die kompasopskrif van 1 ° tot 2 ° moontlik maak. Alle I²C -mini -modules is ontwerp om op 5VDC te werk.
In hierdie handleiding gaan ons die gedetailleerde werking van HMC5883 met Raspberry pi en die programmering daarvan verduidelik met behulp van die java -programmeertaal.
Stap 1: hardeware benodig:
Die hardeware wat benodig word om die taak uit te voer, is soos volg:
1. HMC5883
2. Framboos Pi
3. I2C -kabel
4. I2C -skild vir Framboos Pi
5. Ethernet -kabel
Stap 2: Hardeware -aansluiting:
Die hardeware -aansluitingsgedeelte verduidelik basies die bedradingverbindings wat tussen die sensor en die framboospi benodig word. Die korrekte noodsaaklikheid is om korrekte verbindings te verseker terwyl u aan 'n stelsel werk vir die gewenste uitset. Die vereiste verbindings is dus soos volg:
Die HMC5883 werk oor I2C. Hier is die voorbeeld -bedradingsdiagram wat demonstreer hoe om elke koppelvlak van die sensor aan te sluit.
Uit die boks is die bord gekonfigureer vir 'n I2C-koppelvlak, daarom beveel ons aan dat u hierdie aansluiting gebruik as u anders agnosties is. Al wat u nodig het, is vier drade!
Slegs vier verbindings is nodig Vcc-, Gnd-, SCL- en SDA -penne en dit word met behulp van I2C -kabel verbind.
Hierdie verbindings word getoon in die foto's hierbo.
Stap 3: Java -kode om die intensiteit van die magnetiese veld te meet:
Die voordeel van die gebruik van framboos pi is dat dit die buigsaamheid bied van die programmeertaal waarin u die bord wil programmeer om die sensor daarmee te koppel. Deur hierdie voordeel van hierdie bord te benut, demonstreer ons hier dat dit in Java programmeer. Die java -kode vir HMC5883 kan afgelaai word vanaf ons github -gemeenskap, dit is Dcube Store.
Behalwe vir die gemak van die gebruikers, verduidelik ons die kode ook hier:
As die eerste stap van kodering, moet u die pi4j -biblioteek aflaai in geval van java, want hierdie biblioteek ondersteun die funksies wat in die kode gebruik word. Om die biblioteek af te laai, kan u die volgende skakel besoek:
pi4j.com/install.html
U kan die werkende Java -kode vir hierdie sensor ook hier kopieer:
invoer com.pi4j.io.i2c. I2CBus;
voer com.pi4j.io.i2c. I2CD -toestel in;
mport com.pi4j.io.i2c. I2CFactory;
invoer java.io. IOException; publieke klas HMC5883
{
openbare statiese leegte hoof (String argumente ) gooi uitsondering
{
// Skep I2C -bus
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Kry I2C -toestel, HMC5883 I2C -adres is 0x1E (30)
I2CD -toestel = Bus.getDevice (0x1E);
// Kies Configuration register A
// Normale metingskonfigurasie, datatempo o/p = 0,75 Hz
device.write (0x00, (byte) 0x60);
// Kies modusregister
// Deurlopende metingsmodus
device.write (0x02, (byte) 0x00);
Draad.slaap (500);
// Lees 6 grepe data van 0x03 (3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
byte data = nuwe byte [6];
device.read (0x03, data, 0, 6);
// Skakel die data om
int xMag = ((data [0] & 0xFF) * 256 + (data [1] & 0xFF));
as (xMag> 32767)
{
xMag -= 65536;
}
int zMag = ((data [2] & 0xFF) * 256 + (data [3] & 0xFF));
as (zMag> 32767)
{
zMag -= 65536;
}
int yMag = ((data [4] & 0xFF) * 256 + (data [5] & 0xFF));
as (yMag> 32767)
{
yMag -= 65536;
}
// Uitset data na die skerm
System.out.printf ("Magnetiese veld in X-as: %d %n", xMag);
System.out.printf ("Magnetiese veld in Y-as: %d %n", yMag);
System.out.printf ("Magnetiese veld in Z-as: %d %n", zMag);
}
}
Skryf () en lees () funksies word gebruik om onderskeidelik die opdragte te skryf en die sensoruitset te lees. Die volgende gedeelte illustreer die lees van magnetiese veldwaardes.
// Lees 6 grepe data van 0x03 (3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
byte data = nuwe byte [6];
device.read (0x03, data, 0, 6);
Die uitset word in die prent hierbo getoon.
Stap 4: Aansoeke:
HMC5883 is 'n oppervlak-gemonteerde, multi-chip module wat ontwerp is vir lae-veld magnetiese sensing met 'n digitale koppelvlak vir toepassings soos lae koste kompasering en magnetometrie. Sy akkuraatheid en presisie van een tot twee grade maak voetgangersnavigasie en LBS -toepassings moontlik.
Aanbeveel:
Meting van temperatuur met behulp van AD7416ARZ en Framboos Pi: 4 stappe
Meting van temperatuur met behulp van AD7416ARZ en Framboos Pi: AD7416ARZ is 'n 10-bis temperatuur sensor met vier enkanaals analoog na digitale omsetters en 'n ingeboude temperatuursensor daarin. Toegang tot die temperatuursensor op die dele is via multiplexerkanale. Hierdie hoë akkuraatheidstemperatuur
Meting van ligintensiteit met behulp van BH1715 en Framboos Pi: 5 stappe
Meting van ligintensiteit deur gebruik te maak van BH1715 en Raspberry Pi: Gister was ons besig met LCD -skerms, en terwyl ons daaroor werk, besef ons die belangrikheid van ligintensiteitsberekening. Ligintensiteit is nie net belangrik in die fisiese domein van hierdie wêreld nie, maar dit speel ook 'n welbekende rol in die biologie
Magnetiese veldmeting met behulp van HMC5883 en Arduino Nano: 4 stappe
Magnetiese veldmeting met behulp van HMC5883 en Arduino Nano: Die HMC5883 is 'n digitale kompas wat ontwerp is vir magnetiese waarneming met 'n lae veld. Hierdie toestel het 'n wye magnetiese veldbereik van +/- 8 Oe en 'n uitsetsnelheid van 160 Hz. Die HMC5883 -sensor bevat outomatiese bestuurders vir ontkoppeling van bandjies, kansellering van die offset en 'n
Magnetiese veldmeting met behulp van HMC5883 en partikelfoton: 4 stappe
Magnetiese veldmeting met behulp van HMC5883 en Particle Photon: Die HMC5883 is 'n digitale kompas wat ontwerp is vir magnetiese waarneming met lae veld. Hierdie toestel het 'n wye magnetiese veldbereik van +/- 8 Oe en 'n uitsetsnelheid van 160 Hz. Die HMC5883 -sensor bevat outomatiese bestuurders vir ontkoppeling van bandjies, kansellering van die offset en 'n
Voorlopige* SPI op die Pi: Kommunikeer met 'n SPI-versnellingsmeter met drie assen met behulp van 'n Framboos Pi: 10 stappe
Voorlopige* SPI op die Pi: Kommunikeer met 'n SPI-versnellingsmeter met drie asse met behulp van 'n Framboos Pi: 'n Stap-vir-stap gids oor hoe om Raspbian op te stel en te kommunikeer met 'n SPI-toestel met behulp van bcm2835 SPI-biblioteek (NIE bietjie gebons nie!) Dit is nog steeds baie voorlopig … Ek moet beter foto's van fisiese aansluiting byvoeg, en 'n paar van die ongemaklike kode deurwerk