Sisukord:
- Samm: vajalik riistvara:
- 2. samm: riistvara ühendamine:
- Samm: Java -kood magnetvälja intensiivsuse mõõtmiseks:
- 4. samm: rakendused:
Video: Magnetvälja mõõtmine HMC5883 ja Raspberry Pi abil: 4 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:46
HMC5883 on digitaalne kompass, mis on loodud madala välja magnetvälja tuvastamiseks. Sellel seadmel on lai magnetvälja vahemik +/- 8 Oe ja väljundkiirus 160 Hz. HMC5883 andur sisaldab automaatseid degaussing rihma draivereid, nihke tühistamist ja 12-bitist ADC-d, mis võimaldab kompassi suuna täpsust 1 ° kuni 2 °. Kõik I²C minimoodulid on loodud töötama 5 V alalisvoolul.
Selles õpetuses selgitame HMC5883 üksikasjalikku tööd Raspberry pi -ga ja selle programmeerimist java programmeerimiskeelt kasutades.
Samm: vajalik riistvara:
Ülesande täitmiseks vajalik riistvara on järgmine:
1. HMC5883
2. Vaarika Pi
3. I2C kaabel
4. I2C kilp Raspberry Pi jaoks
5. Etherneti kaabel
2. samm: riistvara ühendamine:
Riistvara ühendamise jaotis selgitab põhimõtteliselt anduri ja vaarika pi vahel vajalikke juhtmestiku ühendusi. Soovitud väljundi mis tahes süsteemiga töötamisel on põhivajadus õigete ühenduste tagamine. Seega on vajalikud ühendused järgmised:
HMC5883 töötab üle I2C. Siin on näide ühendusskeemist, mis näitab, kuidas anduri iga liidest ühendada.
Valmis plaat on konfigureeritud I2C liidese jaoks, seega soovitame seda ühendamist kasutada, kui olete muidu agnostik. Kõik, mida vajate, on neli juhtmest!
Vaja on ainult nelja ühendust Vcc, Gnd, SCL ja SDA ning need ühendatakse I2C kaabli abil.
Neid seoseid on näidatud ülaltoodud piltidel.
Samm: Java -kood magnetvälja intensiivsuse mõõtmiseks:
Vaarika pi kasutamise eeliseks on see, et saate paindlikult programmeerida keelt, milles soovite plaati programmeerida, et andurit sellega liidestada. Kasutades selle plaadi eeliseid, demonstreerime siin, et see on Java -programmeerimine. HMC5883 java koodi saate alla laadida meie githubi kogukonnast, mis on Dcube Store.
Lisaks kasutajate mugavusele selgitame koodi ka siin:
Kodeerimise esimese sammuna peate java korral alla laadima raamatukogu pi4j, kuna see raamatukogu toetab koodis kasutatavaid funktsioone. Niisiis, teegi allalaadimiseks võite külastada järgmist linki:
pi4j.com/install.html
Siit saate kopeerida ka selle anduri töötava java koodi:
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
mport com.pi4j.io.i2c. I2CFactory;
import java.io. IOException; avalik klass HMC5883
{
public static void main (String args ) viskab Erand
{
// Loo I2C siin
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Hangi I2C seade, HMC5883 I2C aadress on 0x1E (30)
I2CDevice seade = Bus.getDevice (0x1E);
// Valige konfiguratsiooniregister A
// Mõõtmise tavaline konfiguratsioon, andmeedastuskiirus o/p = 0,75 Hz
device.write (0x00, (bait) 0x60);
// Valige režiimiregister
// Pideva mõõtmise režiim
device.write (0x02, (bait) 0x00);
Niit.unenägu (500);
// Loe 6 baiti andmeid 0x03 -st (3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
bait andmed = uus bait [6];
device.read (0x03, andmed, 0, 6);
// Teisendage andmed
int xMag = ((andmed [0] & 0xFF) * 256 + (andmed [1] ja 0xFF));
kui (xMag> 32767)
{
xMag -= 65536;
}
int zMag = ((andmed [2] ja 0xFF) * 256 + (andmed [3] ja 0xFF));
kui (zMag> 32767)
{
zMag -= 65536;
}
int yMag = ((andmed [4] ja 0xFF) * 256 + (andmed [5] ja 0xFF));
kui (yMag> 32767)
{
yMag -= 65536;
}
// Andmete väljastamine ekraanile
System.out.printf ("Magnetväli X-teljel: %d %n", xMag);
System.out.printf ("Magnetväli Y-teljel: %d %n", yMag);
System.out.printf ("Z-telje magnetväli: %d %n", zMag);
}
}
Kirjutamise () ja lugemise () funktsioone kasutatakse vastavalt käskude kirjutamiseks ja anduri väljundi lugemiseks. Järgmine osa illustreerib magnetvälja väärtuste lugemist.
// Loe 6 baiti andmeid 0x03 -st (3)
// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb
bait andmed = uus bait [6];
device.read (0x03, andmed, 0, 6);
Väljund on näidatud ülaltoodud pildil.
4. samm: rakendused:
HMC5883 on pinnale paigaldatav mitme kiibiga moodul, mis on loodud madala välja magnetvälja tuvastamiseks koos digitaalse liidesega selliste rakenduste jaoks nagu odavad kompassid ja magnetomeetria. Selle ühe kuni kahe kraadi kõrge täpsus ja täpsus võimaldab jalakäijate navigeerimist ja LBS -i rakendusi.
Soovitan:
Temperatuuri mõõtmine AD7416ARZ ja Raspberry Pi abil: 4 sammu
Temperatuuri mõõtmine AD7416ARZ ja Raspberry Pi abil: AD7416ARZ on 10-bitine temperatuuriandur, millel on neli ühe kanaliga analoog-digitaalmuundurit ja sisseehitatud temperatuuriandur. Osade temperatuuriandurile pääseb juurde multiplekserkanalite kaudu. See ülitäpne temperatuur
Mulla niiskuse mõõtmine Raspberry Pi abil 4: 4 sammu
Mulla niiskuse mõõtmine Raspberry Pi 4 abil: Kas teate, kui tihti taimi kastetakse? Või puistasid taimed välja ja kaotasid need. Selle lahendamiseks arvasin, et oleks olulisem, kui saaksime mulla sees oleva veesisalduse väärtuse, et teha otsus taimede kastmise kohta
Magnetvälja mõõtmine HMC5883 ja Arduino Nano abil: 4 sammu
Magnetvälja mõõtmine HMC5883 ja Arduino Nano abil: HMC5883 on digitaalne kompass, mis on loodud madala välja magnetvälja tuvastamiseks. Sellel seadmel on lai magnetvälja vahemik +/- 8 Oe ja väljundkiirus 160 Hz. HMC5883 andur sisaldab automaatseid degaussing rihma draivereid, nihke tühistamist ja
Magnetvälja mõõtmine HMC5883 ja osakeste footoni abil: 4 sammu
Magnetvälja mõõtmine, kasutades HMC5883 ja osakeste fotone: HMC5883 on digitaalne kompass, mis on loodud madala välja magnetvälja tuvastamiseks. Sellel seadmel on lai magnetvälja vahemik +/- 8 Oe ja väljundkiirus 160 Hz. HMC5883 andur sisaldab automaatseid degaussing rihma draivereid, nihke tühistamist ja
3-teljeline magnetvälja andur: 10 sammu (piltidega)
3-teljeline magnetvälja andur: traadita jõuülekandesüsteemid on tavapärase traadiga laadimise asendamisel. Alates pisikestest biomeditsiinilistest implantaatidest kuni suurte elektrisõidukite juhtmevaba laadimiseni. Traadita toite uurimise lahutamatu osa on