INHOUDSOPGAWE:

Framboos Pi - MPL3115A2 Presisie -hoogtemeter sensor Python -tutoriaal: 4 stappe
Framboos Pi - MPL3115A2 Presisie -hoogtemeter sensor Python -tutoriaal: 4 stappe

Video: Framboos Pi - MPL3115A2 Presisie -hoogtemeter sensor Python -tutoriaal: 4 stappe

Video: Framboos Pi - MPL3115A2 Presisie -hoogtemeter sensor Python -tutoriaal: 4 stappe
Video: HackadayU: Знакомство с FPV-дронами класса 4 2024, Julie
Anonim
Image
Image

Die MPL3115A2 het 'n MEMS -druksensor met 'n I2C -koppelvlak om akkurate druk-/hoogte- en temperatuurdata te verskaf. Die sensoruitsette word gedigitaliseer deur 'n hoë-resolusie 24-bis ADC. Interne verwerking verwyder vergoedingstake uit die gasheer -MCU -stelsel. Dit is in staat om 'n verandering in slegs 0,05 kPa op te spoor wat gelykstaande is aan 'n hoogteverandering van 0,3 m. Hier is die demonstrasie daarvan met framboos pi met behulp van python -kode.

Stap 1: wat u nodig het..

Wat jy nodig het..!!
Wat jy nodig het..!!

1. Framboos Pi

2. MPL3115A2

3. I²C -kabel

4. I²C -skild vir Framboos Pi

5. Ethernet -kabel

Stap 2: Verbindings:

Verbindings
Verbindings
Verbindings
Verbindings
Verbindings
Verbindings
Verbindings
Verbindings

Neem 'n I2C skild vir framboos pi en druk dit liggies oor die gpio penne van framboos pi.

Koppel dan die een kant van die I2C -kabel aan die MPL3115A2 -sensor en die ander kant aan die I2C -skild.

Koppel ook die Ethernet -kabel aan die pi, of u kan 'n WiFi -module gebruik.

Verbindings word op die foto hierbo getoon.

Stap 3: Kode:

Kode
Kode

Die python-kode vir MPL3115A2 kan afgelaai word vanaf ons Github repository- DCUBE Store Community.

Hier is die skakel

Ons het SMBus -biblioteek gebruik vir python -kode, die stappe om SMBus op framboos pi te installeer word hier beskryf:

pypi.python.org/pypi/smbus-cffi/0.5.1

U kan die kode ook hiervandaan kopieer; dit word soos volg gegee:

# Versprei met 'n vrywillige lisensie.

# Gebruik dit soos u wil, wins of gratis, mits dit in die lisensies van die gepaardgaande werke pas.

# MPL3115A2

# Hierdie kode is ontwerp om te werk met die MPL3115A2_I2CS I2C Mini Module

invoer smbus

invoer tyd

# Kry I2C -bus

bus = smbus. SMBus (1)

# MPL3115A2 adres, 0x60 (96)

# Kies kontroleregister, 0x26 (38)

# 0xB9 (185) Aktiewe modus, OSR = 128, Hoogtemeter -modus

bus.write_byte_data (0x60, 0x26, 0xB9)

# MPL3115A2 adres, 0x60 (96)

# Kies datakonfigurasie register, 0x13 (19)

# 0x07 (07) Gereedheid vir data gereed vir hoogte, druk, temperatuur

bus.write_byte_data (0x60, 0x13, 0x07)

# MPL3115A2 adres, 0x60 (96)

# Kies kontroleregister, 0x26 (38)

# 0xB9 (185) Aktiewe modus, OSR = 128, Hoogtemeter -modus

bus.write_byte_data (0x60, 0x26, 0xB9)

tyd. slaap (1)

# MPL3115A2 adres, 0x60 (96)

# Lees data terug van 0x00 (00), 6 grepe

# status, Hoogte MSB1, Hoogte MSB, Hoogte LSB, temp MSB, temp LSB

data = bus.read_i2c_block_data (0x60, 0x00, 6)

# Skakel die data om in 20-bisse

tHeight = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16

temp = ((data [4] * 256) + (data [5] en 0xF0)) / 16

hoogte = tHoogte / 16.0

cTemp = temp / 16.0

fTemp = cTemp * 1.8 + 32

# MPL3115A2 adres, 0x60 (96)

# Kies kontroleregister, 0x26 (38)

# 0x39 (57) Aktiewe modus, OSR = 128, Barometer -modus

bus.write_byte_data (0x60, 0x26, 0x39)

tyd. slaap (1)

# MPL3115A2 adres, 0x60 (96)

# Lees data terug van 0x00 (00), 4 grepe

# status, pres MSB1, pres MSB, pres LSB

data = bus.read_i2c_block_data (0x60, 0x00, 4)

# Skakel die data om in 20-bisse

pres = ((data [1] * 65536) + (data [2] * 256) + (data [3] & 0xF0)) / 16

druk = (pres / 4.0) / 1000.0

# Uitset data na die skerm

druk "Druk: %.2f kPa" %druk

druk "Hoogte: %.2f m" %hoogte

druk "Temperatuur in Celsius: %.2f C" %cTemp

druk "Temperatuur in Fahrenheit: %.2f F" %fTemp

Stap 4: Aansoeke:

Verskeie toepassings van MPL3115A2 sluit in hoë akkuraatheid altimetrie, slimfone/tablette, persoonlike elektronika altimetrie, ens. Dit kan ook opgeneem word in GPS Dead Reckoning, GPS -verbetering vir nooddienste, kaarthulp, navigasie sowel as weerstasie -toerusting.

Aanbeveel: