Përmbajtje:

Matja e Përshpejtimit duke Përdorur BMA250 dhe Foton Particle: 4 Hapa
Matja e Përshpejtimit duke Përdorur BMA250 dhe Foton Particle: 4 Hapa

Video: Matja e Përshpejtimit duke Përdorur BMA250 dhe Foton Particle: 4 Hapa

Video: Matja e Përshpejtimit duke Përdorur BMA250 dhe Foton Particle: 4 Hapa
Video: Matematikë 5 - Përsëritje: Matja e gjatësisë 2024, Nëntor
Anonim
Image
Image

BMA250 është një akselerometër i vogël, i hollë, me ultra të ulët, me 3 boshte me matje me rezolucion të lartë (13-bit) deri në ± 16 g. Të dhënat dalëse dixhitale janë të formatuara si plotësuese 16-bitësh dy dhe janë të arritshme përmes ndërfaqes dixhitale I2C. Mat mat nxitimin statik të gravitetit në aplikimet e ndjeshmërisë së pjerrësisë, si dhe nxitimin dinamik që rezulton nga lëvizja ose goditja. Rezolucioni i tij i lartë (3.9 mg/LSB) mundëson matjen e ndryshimeve të prirjes më pak se 1.0 °.

Në këtë tutorial ne do të masim nxitimin në të tre boshtet pingul duke përdorur BMA250 dhe fotonin e grimcave.

Hapi 1: Kërkohet harduer:

Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer
Kërkohet harduer

Materialet që na duhen për të arritur qëllimin tonë përfshijnë përbërësit e mëposhtëm të harduerit:

1. BMA250

2. Fotoni i grimcave

3. Kabllo I2C

4. Mburoja I2C për fotonin e grimcave

Hapi 2: Bashkimi i harduerit:

Lidhja e harduerit
Lidhja e harduerit
Lidhja e harduerit
Lidhja e harduerit

Seksioni i lidhjes së harduerit në thelb shpjegon lidhjet e telave të kërkuara midis sensorit dhe fotonit të grimcave. Sigurimi i lidhjeve të sakta është nevoja themelore gjatë punës në çdo sistem për daljen e dëshiruar. Pra, lidhjet e nevojshme janë si më poshtë:

BMA250 do të funksionojë mbi I2C. Këtu është shembulli i diagramit të instalimeve elektrike, duke demonstruar se si të lidhni secilën ndërfaqe të sensorit.

Jashtë kutisë, bordi është i konfiguruar për një ndërfaqe I2C, si i tillë ne rekomandojmë përdorimin e këtij bashkimi nëse përndryshe jeni agnostik. Gjithçka që ju nevojitet janë katër tela!

Vetëm katër lidhje kërkohen kunjat Vcc, Gnd, SCL dhe SDA dhe këto janë të lidhura me ndihmën e kabllit I2C.

Këto lidhje demonstrohen në fotot e mësipërme.

Hapi 3: Kodi për të matur përshpejtimin:

Kodi për të matur përshpejtimin
Kodi për të matur përshpejtimin

Le të fillojmë me kodin e grimcave tani.

Ndërsa përdorim modulin e sensorit me arduino, ne përfshijmë bibliotekën application.h dhe spark_wiring_i2c.h. Biblioteka "application.h" dhe spark_wiring_i2c.h përmban funksione të cilat lehtësojnë komunikimin i2c midis sensorit dhe grimcës.

I gjithë kodi i grimcave është dhënë më poshtë për lehtësinë e përdoruesit:

#përfshi

#përfshi

// Adresa BMA250 I2C është 0x18 (24)

#përcaktoni Addr 0x18

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

void setup ()

{

// Vendos ndryshoren

Grimca. E ndryshueshme ("i2cdevice", "BMA250");

Grimca. E ndryshueshme ("xAccl", xAccl);

Particle.variable ("yAccl", yAccl);

Particle.variable ("zAccl", zAccl);

// Filloni komunikimin I2C si MASTER

Wire.begin ();

// Filloni komunikimin serik, vendosni normën e baudit = 9600

Serial.filloj (9600);

// Filloni Transmetimin I2C

Wire.beginTransmetimi (Addr);

// Zgjidh regjistrin e përzgjedhjes së diapazonit

Wire.write (0x0F);

// Vendosni diapazonin +/- 2g

Wire.write (0x03);

// Ndaloni Transmetimin I2C

Wire.endTransmission ();

// Filloni Transmetimin I2C

Wire.beginTransmetimi (Addr);

// Zgjidh regjistrin e gjerësisë së brezit

Wire.write (0x10);

// Vendosni gjerësinë e brezit 7.81 Hz

Wire.write (0x08);

// Ndaloni Transmetimin I2C

Wire.endTransmission ();

vonesë (300);}

lak void ()

{

të dhëna int të panënshkruara [0];

// Filloni Transmetimin I2C

Wire.beginTransmetimi (Addr);

// Zgjidh regjistrat e të dhënave (0x02 - 0x07)

Wire.write (0x02);

// Ndaloni Transmetimin I2C

Wire.endTransmission ();

// Kërkoni 6 byte

Tela. Kërkohet Nga (Addr, 6);

// Lexoni gjashtë bajtët

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

nëse (Wire. në dispozicion () == 6)

{

të dhëna [0] = Wire.read ();

të dhëna [1] = Wire.read ();

të dhëna [2] = Wire.read ();

të dhëna [3] = Wire.read ();

të dhëna [4] = Wire.read ();

të dhëna [5] = Wire.read ();

}

vonesë (300);

// Shndërroni të dhënat në 10 bit

xAccl = ((të dhënat [1] * 256) + (të dhënat [0] & 0xC0)) / 64;

nëse (xAccl> 511)

{

xAccl -= 1024;

}

yAccl = ((të dhënat [3] * 256) + (të dhënat [2] & 0xC0)) / 64;

nëse (yAccl> 511)

{

yAccl -= 1024;

}

zAccl = ((të dhënat [5] * 256) + (të dhënat [4] & 0xC0)) / 64;

nëse (zAccl> 511)

{

zAccl -= 1024;

}

// Dalja e të dhënave në pult

Particle.publish ("Përshpejtimi në boshtin X:", String (xAccl));

vonesa (1000);

Particle.publish ("Përshpejtimi në Boshtin Y:", String (yAccl));

vonesa (1000);

Particle.publish ("Përshpejtimi në Boshtin Z:", String (zAccl));

vonesa (1000);

}

Funksioni Particle.variable () krijon variablat për të ruajtur daljen e sensorit dhe funksioni Particle.publish () shfaq daljen në pultin e faqes.

Dalja e sensorit tregohet në figurën e mësipërme për referencën tuaj.

Hapi 4: Aplikimet:

Aplikimet
Aplikimet

Përshpejtuesit si BMA250 kryesisht gjejnë aplikimin e tij në lojërat dhe ndërrimin e profilit të ekranit. Ky modul sensor përdoret gjithashtu në sistemin e avancuar të menaxhimit të energjisë për aplikacionet mobile. BMA250 është një sensor dixhital i nxitimit dixhital i cili është i përfshirë me një kontrollues ndërprerës të shkaktuar nga lëvizja inteligjente në çip.

Recommended: