Sisällysluettelo:
Video: Raspberry Pi - MPL3115A2 Tarkka korkeusmittarin Java -opetusohjelma: 4 vaihetta
2024 Kirjoittaja: John Day | [email protected]. Viimeksi muokattu: 2024-01-30 09:01
MPL3115A2 käyttää MEMS -paineanturia, jossa on I2C -liitäntä, joka antaa tarkat paine-/korkeus- ja lämpötilatiedot. Anturilähdöt digitalisoidaan korkean resoluution 24-bittisellä ADC: llä. Sisäinen käsittely poistaa korvaustehtävät isäntä MCU -järjestelmästä. Se pystyy havaitsemaan muutoksen vain 0,05 kPa, mikä vastaa 0,3 metrin korkeuden muutosta. Tässä on sen esittely vadelma pi: llä java -koodilla.
Vaihe 1: Mitä tarvitset..
1. Vadelma Pi
2. MPL3115A2
3. I²C -kaapeli
4. I²C -kilpi Raspberry Pi: lle
5. Ethernet -kaapeli
Vaihe 2: Liitännät:
Ota I2C -kilpi vadelma pi: lle ja työnnä sitä varovasti vadelma pi: n gpio -nastojen päälle.
Liitä sitten I2C -kaapelin toinen pää MPL3115A2 -anturiin ja toinen pää I2C -suojaan.
Liitä myös Ethernet -kaapeli pi: hen tai voit käyttää WiFi -moduulia.
Liitännät näkyvät yllä olevassa kuvassa.
Vaihe 3: Koodi:
MPL3115A2: n Java-koodin voi ladata github-arkistostamme- DCUBE Storesta.
Tässä linkki samaan:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Olemme käyttäneet java -koodille pi4j -kirjastoa, vaiheet pi4j: n asentamiseksi vadelma pi: lle on kuvattu tässä:
pi4j.com/install.html
Voit myös kopioida koodin täältä, se annetaan seuraavasti:
// Jaetaan vapaaehtoisella lisenssillä.
// Käytä sitä haluamallasi tavalla, voittoa tai ilmaiseksi, jos se sopii siihen liittyvien teosten lisensseihin.
// MPL3115A2
// Tämä koodi on suunniteltu toimimaan MPL3115A2_I2CS I2C Mini -moduulin kanssa, joka on saatavana osoitteesta
tuonti com.pi4j.io.i2c. I2CBus;
tuoda com.pi4j.io.i2c. I2CDevice;
tuonti com.pi4j.io.i2c. I2CFactory;
tuoda java.io. IOException;
julkinen luokka MPL3115A2
{
public staattinen void main (String args ) heittää Poikkeus
{
// Luo I2C -väylä
I2CBus Bus = I2CFactory.getInstance (I2CBus. BUS_1);
// Hanki I2C -laite, MPL3115A2 I2C -osoite on 0x60 (96)
I2CDevice device = Bus.getDevice (0x60);
// Valitse ohjausrekisteri
// Aktiivinen tila, OSR = 128, korkeusmittari
device.write (0x26, (tavu) 0xB9);
// Valitse tietojen määritysrekisteri
// Data ready -tapahtuma käytössä korkeudessa, paineessa, lämpötilassa
device.write (0x13, (tavu) 0x07);
// Valitse ohjausrekisteri
// Aktiivinen tila, OSR = 128, korkeusmittari
device.write (0x26, (tavu) 0xB9);
Kierre. Nukkumassa (1000);
// Lue 6 tavua dataa osoitteesta 0x00 (00)
// tila, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
tavu data = uusi tavu [6];
device.read (0x00, data, 0, 6);
// Muunna tiedot 20-bittisiksi
int tKorkeus = ((((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16);
int temp = ((data [4] * 256) + (data [5] & 0xF0)) / 16;
kaksoiskorkeus = tKorkeus / 16,0;
kaksinkertainen cTemp = (lämpötila / 16,0);
kaksinkertainen fTemp = cTemp * 1,8 + 32;
// Valitse ohjausrekisteri
// Aktiivinen tila, OSR = 128, barometritila
device.write (0x26, (tavu) 0x39);
Kierteet.unen (1000);
// Lue 4 tavua dataa osoitteesta 0x00 (00)
// tila, pres msb1, pres msb, pres lsb
device.read (0x00, data, 0, 4);
// Muunna tiedot 20-bittisiksi
int pres = ((((data [1] & 0xFF) * 65536) + ((data [2] & 0xFF) * 256) + (data [3] & 0xF0)) / 16;
kaksinkertainen paine = (pres / 4,0) / 1000,0;
// Tulosta tiedot näytölle
System.out.printf ("Paine: %.2f kPa %n", paine);
System.out.printf ("Korkeus: %.2f m %n", korkeus);
System.out.printf ("Lämpötila celsiusasteina: %.2f C %n", cTemp);
System.out.printf ("Lämpötila Fahrenheit: %.2f F %n", fTemp);
}
}
Vaihe 4: Sovellukset:
MPL3115A2: n eri sovelluksiin kuuluu korkean tarkkuuden korkeusmittari, älypuhelimet/tabletit, henkilökohtaisen elektroniikan korkeusmittari jne. Se voidaan sisällyttää myös GPS -kuolleen laskennan, hätäpalvelujen GPS -parannuksen, kartta -avustimen, navigoinnin ja sääaseman laitteisiin.
Suositeltava:
Waveshare E-ink -näyttö Tarkka volttimittari (0-90v DC) ja Arduino Nano: 3 vaihetta
Waveshare E-ink -näyttö Tarkka volttimittari (0-90v DC) Arduino Nanon kanssa: Tässä opetusohjelmassa käytän 2,9 tuuman Waveshare-sähköpaperinäyttöä, jossa on Arduino Nano, jännitteenjakaja ja ADS1115 tarkkojen jännitteiden näyttämiseen jopa 90 volttia tasavirtaa E-paperinäytössä.Tässä ohjeessa yhdistetään nämä kaksi aiempaa projektia:- Ardui
Arduino tarkka ja tarkka voltimittari (0-90V DC): 3 vaihetta
Arduino tarkka ja tarkka volttimittari (0-90 V DC): Tässä ohjeessa olen rakentanut voltimittarin mittaamaan suurjännitteitä DC (0-90v) suhteellisen tarkasti ja tarkasti Arduino Nanon avulla. Otamani testimittaukset olivat riittävän tarkkoja, enimmäkseen 0,3 V: n sisällä todellisesta jännitteestä, joka mitattiin
3D -painettu Endgame Arc Reactor (elokuva tarkka ja puettava): 7 vaihetta (kuvilla)
3D -painettu Endgame Arc Reactor (Elokuva tarkka ja puettava): Koko Youtube -opetusohjelma: En löytänyt mitään erityisen tarkkoja 3D -tiedostoja Mark 50 -kaarireaktorille/nanohiukkasten kotelolle, joten kaverini ja minä keitimme makeita. Kesti paljon säätämistä, jotta asia näyttäisi tarkalta ja mahtavalta
GPSDO YT, kurinalainen oskillaattori 10 MHz: n vertailutaajuus. Halpa. Tarkka: 3 vaihetta
GPSDO YT, kurinalainen oskillaattori 10 MHz: n vertailutaajuus. Halpa. Tarkka .: *********************************************** ********************************* STOP STOP STOP STOP STOP STOP STOP STOP STOP STOP Tämä on vanhentunut projekti. Tarkista sen sijaan uusi 2x16 lcd -näyttöversio saatavilla täältä: https: //www.instructables.com/id
Pingo: Liikkeentunnistava ja erittäin tarkka Ping Pong Ball Launcher: 8 vaihetta
Pingo: Liikkeentunnistava ja erittäin tarkka pingispallonheitin: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay