Sommario:
- Passaggio 1: ciò di cui hai bisogno.
- Passaggio 2: connessioni:
- Passaggio 3: codice:
- Passaggio 4: applicazioni:
Video: Raspberry Pi - Tutorial Java per sensore altimetro di precisione MPL3115A2: 4 passaggi
2024 Autore: John Day | [email protected]. Ultima modifica: 2024-01-30 10:02
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 java.
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 java per MPL3115A2 può essere scaricato dal nostro repository github - DCUBE Store.
Ecco il link per lo stesso:
github.com/DcubeTechVentures/MPL3115A2/tree/master/Java
Abbiamo usato la libreria pi4j per il codice java, i passaggi per installare pi4j su raspberry pi sono descritti qui:
pi4j.com/install.html
Puoi anche copiare il codice da qui, è fornito come segue:
// Distribuito con una licenza libera.
// Usalo come vuoi, a scopo di lucro o gratuito, a condizione che rientri nelle licenze delle opere associate.
//MPL3115A2
// Questo codice è progettato per funzionare con il Mini Modulo MPL3115A2_I2CS I2C disponibile da
import com.pi4j.io.i2c. I2CBus;
import com.pi4j.io.i2c. I2CDevice;
import com.pi4j.io.i2c. I2CFactory;
import java.io. IOException;
classe pubblica MPL3115A2
{
public static void main(String args) genera un'eccezione
{
// Crea bus I2C
I2CBus Bus = I2CFactory.getInstance(I2CBus. BUS_1);
// Ottieni il dispositivo I2C, l'indirizzo I2C MPL3115A2 è 0x60(96)
I2CDevice device = Bus.getDevice(0x60);
// Seleziona il registro di controllo
// Modalità attiva, OSR = 128, modalità altimetro
device.write(0x26, (byte)0xB9);
// Seleziona il registro di configurazione dei dati
// Evento Data Ready abilitato per altitudine, pressione, temperatura
device.write(0x13, (byte)0x07);
// Seleziona il registro di controllo
// Modalità attiva, OSR = 128, modalità altimetro
device.write(0x26, (byte)0xB9);
Thread.sleep(1000);
// Legge 6 byte di dati dall'indirizzo 0x00(00)
// stato, tHeight msb1, tHeight msb, tHeight lsb, temp msb, temp lsb
byte dati = nuovo byte[6];
device.read(0x00, data, 0, 6);
// Converti i dati a 20 bit
int tHeight = ((((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16);
int temp = ((data[4] * 256) + (data[5] & 0xF0)) / 16;
doppia altitudine = tHeight / 16,0;
double cTemp = (temp / 16.0);
doppia fTemp = cTemp * 1,8 + 32;
// Seleziona il registro di controllo
// Modalità attiva, OSR = 128, modalità barometro
device.write(0x26, (byte)0x39);
Thread.sleep(1000);
// Legge 4 byte di dati dall'indirizzo 0x00(00)
// stato, pres msb1, pres msb, pres lsb
device.read(0x00, data, 0, 4);
// Converti i dati a 20 bit
int pres = (((data[1] & 0xFF) * 65536) + ((data[2] & 0xFF) * 256) + (data[3] & 0xF0)) / 16;
doppia pressione = (pres / 4.0) / 1000.0;
// Invia i dati allo schermo
System.out.printf("Pressione: %.2f kPa %n", pressione);
System.out.printf("Altitudine: %.2f m %n", altitudine);
System.out.printf("Temperatura in gradi Celsius: %.2f C %n", cTemp);
System.out.printf("Temperatura in Fahrenheit: %.2f F %n", 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