Indholdsfortegnelse:

Accelerationsmåling ved hjælp af BMA250 og Particle Photon: 4 trin
Accelerationsmåling ved hjælp af BMA250 og Particle Photon: 4 trin

Video: Accelerationsmåling ved hjælp af BMA250 og Particle Photon: 4 trin

Video: Accelerationsmåling ved hjælp af BMA250 og Particle Photon: 4 trin
Video: Audi RS e-tron GT - Har den sin berettigelse? (Del 2:2) 2024, Juli
Anonim
Image
Image

BMA250 er et lille, tyndt, ultralavt, 3-akset accelerometer med høj opløsning (13-bit) måling på op til ± 16 g. Digitale outputdata er formateret som 16-bit tokomplement og er tilgængelige via I2C digital interface. Det måler den statiske tyngdekraftacceleration i tilt-sensing applikationer samt dynamisk acceleration som følge af bevægelse eller stød. Dens høje opløsning (3,9 mg/LSB) muliggør måling af hældningsændringer mindre end 1,0 °.

I denne vejledning skal vi måle accelerationen i alle de tre vinkelrette akser ved hjælp af BMA250 og Particle foton.

Trin 1: Påkrævet hardware:

Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet
Hardware påkrævet

De materialer, vi har brug for for at nå vores mål, omfatter følgende hardwarekomponenter:

1. BMA250

2. Partikelfoton

3. I2C -kabel

4. I2C -skærm til partikelfoton

Trin 2: Hardware -tilslutning:

Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning
Hardware -tilslutning

Hardwaretilslutningssektionen forklarer dybest set de ledningsforbindelser, der kræves mellem sensoren og partikelfonen. At sikre korrekte forbindelser er den grundlæggende nødvendighed, mens du arbejder på et hvilket som helst system til den ønskede output. Så de nødvendige forbindelser er som følger:

BMA250 fungerer over I2C. Her er eksemplet på ledningsdiagram, der viser, hvordan du tilslutter hver grænseflade på sensoren.

Out-of-the-box er tavlen konfigureret til en I2C-grænseflade, som sådan anbefaler vi at bruge denne tilslutning, hvis du ellers er agnostiker. Alt du behøver er fire ledninger!

Der kræves kun fire tilslutninger Vcc, Gnd, SCL og SDA ben, og disse er forbundet ved hjælp af I2C kabel.

Disse forbindelser er vist på billederne ovenfor.

Trin 3: Kode til måling af acceleration:

Kode til måling af acceleration
Kode til måling af acceleration

Lad os starte med partikelkoden nu.

Mens vi bruger sensormodulet med arduino, inkluderer vi application.h og spark_wiring_i2c.h bibliotek. "application.h" og spark_wiring_i2c.h biblioteket indeholder de funktioner, der letter i2c -kommunikationen mellem sensoren og partiklen.

Hele partikelkoden er angivet nedenfor for brugerens bekvemmelighed:

#omfatte

#omfatte

// BMA250 I2C -adressen er 0x18 (24)

#define Addr 0x18

int xAccl = 0, yAccl = 0, zAccl = 0;

ugyldig opsætning ()

{

// Indstil variabel

Partikel.variabel ("i2cdevice", "BMA250");

Partikel.variabel ("xAccl", xAccl);

Partikel.variabel ("yAccl", yAccl);

Partikel.variabel ("zAccl", zAccl);

// Initialiser I2C -kommunikation som MASTER

Wire.begin ();

// Initialiser seriel kommunikation, indstil baudhastighed = 9600

Serial.begin (9600);

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg områdevalgsregister

Wire.write (0x0F);

// Indstil område +/- 2g

Wire.write (0x03);

// Stop I2C -transmission

Wire.endTransmission ();

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg båndbredderegister

Wire.write (0x10);

// Indstil båndbredde 7,81 Hz

Wire.write (0x08);

// Stop I2C -transmission

Wire.endTransmission ();

forsinkelse (300);}

hulrum ()

{

usignerede int -data [0];

// Start I2C -transmission

Wire.beginTransmission (Addr);

// Vælg dataregistre (0x02 - 0x07)

Wire.write (0x02);

// Stop I2C -transmission

Wire.endTransmission ();

// Anmod om 6 bytes

Wire.requestFrom (Addr, 6);

// Læs de seks bytes

// xAccl lsb, xAccl msb, yAccl lsb, yAccl msb, zAccl lsb, zAccl msb

hvis (Wire.available () == 6)

{

data [0] = Wire.read ();

data [1] = Wire.read ();

data [2] = Wire.read ();

data [3] = Wire.read ();

data [4] = Wire.read ();

data [5] = Wire.read ();

}

forsinkelse (300);

// Konverter dataene til 10 bits

xAccl = ((data [1] * 256) + (data [0] & 0xC0)) / 64;

hvis (xAccl> 511)

{

xAccl -= 1024;

}

yAccl = ((data [3] * 256) + (data [2] & 0xC0)) / 64;

hvis (yAccl> 511)

{

yAccl -= 1024;

}

zAccl = ((data [5] * 256) + (data [4] & 0xC0)) / 64;

hvis (zAccl> 511)

{

zAccl -= 1024;

}

// Output data til dashboard

Particle.publish ("Acceleration i X-Axis:", String (xAccl));

forsinkelse (1000);

Particle.publish ("Acceleration i Y-akse:", streng (yAccl));

forsinkelse (1000);

Particle.publish ("Acceleration i Z-akse:", streng (zAccl));

forsinkelse (1000);

}

Funktionen Particle.variable () opretter variablerne til lagring af sensorens output og Particle.publish () -funktionen viser outputtet på webstedets dashboard.

Sensorudgangen er vist på billedet ovenfor til din reference.

Trin 4: Ansøgninger:

Ansøgninger
Ansøgninger

Accelerometre som BMA250 finder for det meste sin anvendelse i spil og skift af profilprofiler. Dette sensormodul bruges også i det avancerede strømstyringssystem til mobile applikationer. BMA250 er en triaksial digital accelerationssensor, som er integreret med en intelligent on-chip bevægelsesudløst afbrydelsescontroller.

Anbefalede: