Sadržaj:
Video: Raspberry Pi - MPL3115A2 Precizni senzor visinomjera Senzor za Python: 4 koraka
2024 Autor: John Day | [email protected]. Zadnja izmjena: 2024-01-30 08:05
MPL3115A2 koristi MEMS senzor pritiska sa I2C interfejsom za pružanje tačnih podataka o pritisku/nadmorskoj visini i temperaturi. Izlazi senzora digitalizirani su 24-bitnim ADC-om visoke rezolucije. Interna obrada uklanja zadatke kompenzacije iz host MCU sistema. Sposoban je otkriti promjenu od samo 0,05 kPa, što je jednako promjeni visine 0,3 m. Evo njegove demonstracije s malinom pi pomoću python koda.
Korak 1: Šta vam treba..
1. Malina Pi
2. MPL3115A2
3. I²C kabel
4. I²C štit za Raspberry Pi
5. Ethernet kabel
Korak 2: Veze:
Uzmite I2C štit za malinu pi i nježno je gurnite preko gpio igle maline pi.
Zatim spojite jedan kraj I2C kabela na senzor MPL3115A2, a drugi kraj na I2C štit.
Također priključite Ethernet kabel na pi ili možete koristiti WiFi modul.
Veze su prikazane na gornjoj slici.
Korak 3: Kod:
Python kod za MPL3115A2 može se preuzeti sa našeg Github spremišta- DCUBE Store Community.
Evo linka
Koristili smo SMBus biblioteku za python kod, koraci za instaliranje SMBus -a na malinu pi opisani su ovdje:
pypi.python.org/pypi/smbus-cffi/0.5.1
Kôd možete i kopirati odavde, dat je na sljedeći način:
# Distribuirano s licencom za slobodnu volju.
# Koristite ga kako god želite, profitno ili besplatno, pod uvjetom da se uklapa u licence povezanih djela.
# MPL3115A2
# Ovaj kôd je dizajniran za rad s MPL3115A2_I2CS I2C mini modulom
import smbus
vreme uvoza
# Nabavite I2C autobus
sabirnica = smbus. SMBus (1)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite kontrolni registar, 0x26 (38)
# 0xB9 (185) Aktivni način rada, OSR = 128, način rada visinomjera
bus.write_byte_data (0x60, 0x26, 0xB9)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite registar konfiguracije podataka, 0x13 (19)
# 0x07 (07) Dozvoljen događaj spremnosti podataka za nadmorsku visinu, pritisak, temperaturu
bus.write_byte_data (0x60, 0x13, 0x07)
# MPL3115A2 adresa, 0x60 (96)
# Odaberite kontrolni registar, 0x26 (38)
# 0xB9 (185) Aktivni način rada, OSR = 128, način rada visinomjera
bus.write_byte_data (0x60, 0x26, 0xB9)
time.sleep (1)
# MPL3115A2 adresa, 0x60 (96)
# Pročitajte podatke nazad od 0x00 (00), 6 bajtova
# status, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
data = bus.read_i2c_block_data (0x60, 0x00, 6)
# Pretvorite podatke u 20-bitne
tHeight = ((podaci [1] * 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16
temp = ((podaci [4] * 256) + (podaci [5] & 0xF0)) / 16
nadmorska visina = tVisina / 16,0
cTemp = temp / 16.0
fTemp = cTemp * 1,8 + 32
# MPL3115A2 adresa, 0x60 (96)
# Odaberite kontrolni registar, 0x26 (38)
# 0x39 (57) Aktivni način rada, OSR = 128, način rada barometra
bus.write_byte_data (0x60, 0x26, 0x39)
time.sleep (1)
# MPL3115A2 adresa, 0x60 (96)
# Očitavanje podataka unazad od 0x00 (00), 4 bajta
# status, pres MSB1, pres MSB, pres LSB
data = bus.read_i2c_block_data (0x60, 0x00, 4)
# Pretvorite podatke u 20-bitne
pres = ((podaci [1] * 65536) + (podaci [2] * 256) + (podaci [3] & 0xF0)) / 16
pritisak = (pres / 4,0) / 1000,0
# Izlažite podatke na ekran
ispis "Pritisak: %.2f kPa" %pritisak
ispis "Nadmorska visina: %.2f m" %nadmorske visine
ispis "Temperatura u Celzijusima: %.2f C" %cTemp
ispis "Temperatura u Farenhajtu: %.2f F" %fTemp
Korak 4: Aplikacije:
Različite primjene MPL3115A2 uključuju altimetriju visoke preciznosti, pametne telefone/tablete, altimetriju lične elektronike itd. Također se može uključiti u GPS mrtvo računanje, GPS poboljšanje za hitne službe, pomoć pri mapiranju, navigaciju kao i opremu meteorološke stanice.
Preporučuje se:
Arduino precizni i tačni voltmetar (0-90V DC): 3 koraka
Arduino precizni i tačni voltmetar (0-90V DC): U ovom uputstvu sam izgradio voltmetar za mjerenje visokog napona DC (0-90v) sa relativnom preciznošću i tačnošću koristeći Arduino Nano. Testna mjerenja koja sam obavila bila su dovoljno točna, uglavnom unutar 0,3v od stvarnog napona izmjerenog sa
DropArt - Precizni fotografski kolajder s dva ispuštanja: 11 koraka (sa slikama)
DropArt - Precizni fotografski sudarač sa dvije kapi: Pozdrav svima, u ovom uputstvu predstavljam svoj dizajn za računarski upravljani sudarač sa dvije kapljice tekućine. Prije nego počnemo s detaljima dizajna, mislim da ima smisla objasniti tačno koja je svrha dizajna. Zabava, interesi
Precizni sat: 3 koraka
Precizni sat: Svima su nam potrebni satovi pa zašto ne napravite sami u ovom uputstvu, pokazat ću vam kako napraviti precizni sat nakon što ga postavite automatski će pratiti trenutno vrijeme u pozadini svega. Iako mu je potrebno samo vrlo malo
SnappyXO precizni robot za kretanje: 6 koraka
SnappyXO precizni robot za kretanje: Neka vaš Arduino robot ide ravno na određenu udaljenost ili se okreće do određenog kuta pomoću biblioteke PreciseMovement Arduino. Robotu je potreban kotač za valjanje ili ekvivalent za minimiziranje trenja pri uvijanju.https: //www.pololu. com/produ
Visoko precizni regulator temperature: 6 koraka (sa slikama)
Visokoprecizni regulator temperature: U znanosti i svijetu inženjeringa praćenje temperature aka (kretanje atoma u termodinamici) jedan je od osnovnih fizičkih parametara koje treba uzeti u obzir gotovo svugdje, počevši od ćelijske biologije do rakete na tvrdo gorivo