Sommario:
- Passaggio 1: ciò di cui hai bisogno.
- Passaggio 2: connessioni:
- Passaggio 3: codice:
- Passaggio 4: applicazioni:
Video: Raspberry Pi - Tutorial Python per sensore altimetro di precisione MPL3115A2: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:00
L'MPL3115A2 utilizza un sensore di pressione MEMS con un'interfaccia I2C per fornire dati precisi su pressione/altitudine e temperatura. Le uscite del sensore sono digitalizzate da un ADC a 24 bit ad alta risoluzione. L'elaborazione interna rimuove le attività di compensazione dal sistema MCU host. È in grado di rilevare un cambiamento di soli 0,05 kPa, che equivale a un cambiamento di altitudine di 0,3 m. Ecco la sua dimostrazione con raspberry pi usando il codice python.
Passaggio 1: ciò di cui hai bisogno.
1. Lampone Pi
2. MPL3115A2
3. Cavo I²C
4. Scudo I²C per Raspberry Pi
5. Cavo Ethernet
Passaggio 2: connessioni:
Prendi uno scudo I2C per lampone pi e spingilo delicatamente sui pin gpio di lampone pi.
Quindi collegare un'estremità del cavo I2C al sensore MPL3115A2 e l'altra estremità allo schermo I2C.
Collega anche il cavo Ethernet al pi oppure puoi utilizzare un modulo WiFi.
I collegamenti sono mostrati nell'immagine sopra.
Passaggio 3: codice:
Il codice Python per MPL3115A2 può essere scaricato dal nostro repository Github - DCUBE Store Community.
Ecco il link
Abbiamo utilizzato la libreria SMBus per il codice Python, i passaggi per installare SMBus su raspberry pi sono descritti qui:
pypi.python.org/pypi/smbus-cffi/0.5.1
Puoi anche copiare il codice da qui, è fornito come segue:
# Distribuito con una licenza libera.
# Usalo come preferisci, a scopo di lucro o gratuito, a condizione che si adatti alle licenze delle opere associate.
# MPL3115A2
# Questo codice è progettato per funzionare con il Mini Modulo MPL3115A2_I2CS I2C
import smbus
tempo di importazione
# Ottieni l'autobus I2C
bus = smbus. SMBus(1)
# indirizzo MPL3115A2, 0x60(96)
# Seleziona registro di controllo, 0x26(38)
# 0xB9(185) Modalità attiva, OSR = 128, modalità altimetro
bus.write_byte_data(0x60, 0x26, 0xB9)
# indirizzo MPL3115A2, 0x60(96)
# Seleziona il registro di configurazione dei dati, 0x13(19)
# 0x07(07) Evento pronto dati abilitato per altitudine, pressione, temperatura
bus.write_byte_data(0x60, 0x13, 0x07)
# indirizzo MPL3115A2, 0x60(96)
# Seleziona registro di controllo, 0x26(38)
# 0xB9(185) Modalità attiva, OSR = 128, modalità altimetro
bus.write_byte_data(0x60, 0x26, 0xB9)
tempo.sonno(1)
# indirizzo MPL3115A2, 0x60(96)
# Rilegge i dati da 0x00(00), 6 byte
# stato, tHeight MSB1, tHeight MSB, tHeight LSB, temp MSB, temp LSB
dati = bus.read_i2c_block_data(0x60, 0x00, 6)
# Converti i dati a 20 bit
tAltezza = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16
temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16
altitudine = tAltezza / 16,0
cTemp = temperatura / 16,0
fTemp = cTemp * 1,8 + 32
# indirizzo MPL3115A2, 0x60(96)
# Seleziona registro di controllo, 0x26(38)
# 0x39(57) Modalità attiva, OSR = 128, Modalità barometro
bus.write_byte_data(0x60, 0x26, 0x39)
tempo.sonno(1)
# indirizzo MPL3115A2, 0x60(96)
# Rilegge i dati da 0x00(00), 4 byte
# stato, pres MSB1, pres MSB, pres LSB
dati = bus.read_i2c_block_data(0x60, 0x00, 4)
# Converti i dati a 20 bit
pres = ((data[1] * 65536) + (data[2] * 256) + (data[3] & 0xF0)) / 16
pressione = (pres / 4.0) / 1000.0
# Invia i dati allo schermo
print "Pressione: %.2f kPa" %pressione
print "Altitudine: %.2f m" %altitudine
print "Temperatura in gradi Celsius: %.2f C" %cTemp
print "Temperatura in Fahrenheit: %.2f F" %fTemp
Passaggio 4: applicazioni:
Varie applicazioni di MPL3115A2 includono altimetria ad alta precisione, smartphone/tablet, altimetria elettronica personale ecc. Può anche essere incorporata in GPS Dead Reckoning, GPS Enhancement per servizi di emergenza, Map Assist, navigazione e apparecchiature per stazioni meteorologiche.
Consigliato:
Pingo: un lanciatore di palline da ping pong con rilevamento del movimento e alta precisione: 8 passaggi
Pingo: un lanciatore di palline da ping pong con rilevamento del movimento e alta precisione: Kevin Nitiema, Esteban Poveda, Anthony Mattacchione, Raphael Kay
DropArt - Collider fotografico di precisione a due gocce: 11 passaggi (con immagini)
DropArt - Collider fotografico di precisione a due gocce: ciao a tutti, in questo tutorial presento il mio progetto per un collisore a due gocce di liquido controllato da computer. Prima di iniziare con i dettagli del design, penso che abbia senso spiegare esattamente qual è lo scopo del design. Un divertente, interessante
PropVario, un variometro/altimetro fai-da-te con uscita vocale per alianti RC: 7 passaggi (con immagini)
PropVario, un variometro/altimetro fai-da-te con uscita vocale per alianti RC: queste istruzioni ti mostreranno come costruire un Vario economico, che potrebbe parlare l'altitudine e, naturalmente, inviare vari toni quando si cambia l'altezza del tuo aliante. Alcune caratteristiche: - voce e tono - usa i tuoi campioni (wave-) nella tua la
Altimetro barometrico elettronico per palloni stratosferici: 9 passaggi (con immagini)
Altimetro barometrico elettronico per palloni stratosferici: il nostro team, RandomRace.ru, lancia palloni ad elio. Piccoli e grandi, con e senza telecamere. Lanciamo quelli piccoli per far cadere a caso i checkpoint per le gare di corse avventurose e quelli grandi per realizzare fantastici video e foto dall'alto dell'atmosfera
Arduino: Lib di precisione per motore passo-passo: 19 passaggi
Arduino: Precision Lib per motore passo-passo: oggi ti mostrerò una libreria per un driver per motore passo-passo completo con finecorsa e movimento del motore con accelerazione e micro passo. Questo Lib, che funziona sia su Arduino Uno che su Arduino Mega, ti consente di spostare i motori in base non solo