Talaan ng mga Nilalaman:

Pagsukat sa Pagpabilis ng Paggamit ng BMA250 at Particle Photon: 4 na Hakbang
Pagsukat sa Pagpabilis ng Paggamit ng BMA250 at Particle Photon: 4 na Hakbang

Video: Pagsukat sa Pagpabilis ng Paggamit ng BMA250 at Particle Photon: 4 na Hakbang

Video: Pagsukat sa Pagpabilis ng Paggamit ng BMA250 at Particle Photon: 4 na Hakbang
Video: SCP-3029 KIC 8462852 (Tabby's Star) | object class neutralized 2024, Nobyembre
Anonim
Image
Image

Ang BMA250 ay isang maliit, manipis, ultralow power, 3-axis accelerometer na may mataas na resolusyon (13-bit) na pagsukat hanggang sa ± 16 g. Ang data ng output ng digital ay na-format bilang 16-bit na twos na pandagdag at maa-access sa pamamagitan ng digital interface ng I2C. Sinusukat nito ang static na pagpabilis ng gravity sa mga application na nakakiling, at pati na rin ang pabago-bagong paggalaw na nagreresulta mula sa paggalaw o pagkabigla. Ang mataas na resolusyon (3.9 mg / LSB) ay nagbibigay-daan sa pagsukat ng mga pagbabago sa pagkahilig mas mababa sa 1.0 °.

Sa tutorial na ito susukatin namin ang pagpabilis sa lahat ng tatlong patayo na mga palakol gamit ang BMA250 at Particle photon.

Hakbang 1: Kinakailangan ang Hardware:

Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware
Kinakailangan ang Hardware

Ang mga materyal na kailangan namin para makamit ang aming layunin ay may kasamang mga sumusunod na bahagi ng hardware:

1. BMA250

2. Particle Photon

3. I2C Cable

4. I2C Shield para sa Photicle ng Particle

Hakbang 2: Hardware Hookup:

Hardware Hookup
Hardware Hookup
Hardware Hookup
Hardware Hookup

Karaniwang ipinapaliwanag ng seksyon ng hookup ng hardware ang mga koneksyon sa mga kable na kinakailangan sa pagitan ng sensor at ng particle foton. Ang pagtiyak sa tamang mga koneksyon ay ang pangunahing pangangailangan habang nagtatrabaho sa anumang system para sa nais na output. Kaya, ang mga kinakailangang koneksyon ay ang mga sumusunod:

Gagana ang BMA250 sa paglipas ng I2C. Narito ang halimbawa ng diagram ng mga kable, na nagpapakita kung paano i-wire ang bawat interface ng sensor.

Sa labas ng kahon, naka-configure ang board para sa isang interface ng I2C, dahil inirerekumenda namin ang paggamit ng hookup na ito kung hindi ka agnostiko. Ang kailangan mo lang ay apat na wires!

Apat na koneksyon lamang ang kinakailangan ng Vcc, Gnd, SCL at SDA pin at ang mga ito ay konektado sa tulong ng I2C cable.

Ang mga koneksyon na ito ay ipinakita sa mga larawan sa itaas.

Hakbang 3: Code upang Sukatin ang Pagpabilis:

Code upang Sukatin ang Pagpabilis
Code upang Sukatin ang Pagpabilis

Hinahayaan nating magsimula sa code ng maliit na butil ngayon.

Habang ginagamit ang module ng sensor na may arduino, nagsasama kami ng application.h at spark_wiring_i2c.h library. Ang "application.h" at spark_wiring_i2c.h library ay naglalaman ng mga pagpapaandar na nagpapadali sa komunikasyon ng i2c sa pagitan ng sensor at ng maliit na butil.

Ang buong code ng maliit na butil ay ibinibigay sa ibaba para sa kaginhawaan ng gumagamit:

# isama

# isama

// BMA250 I2C address ay 0x18 (24)

# tukuyin ang Addr 0x18

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

walang bisa ang pag-setup ()

{

// Itakda ang variable

Particle.variable ("i2cdevice", "BMA250");

Particle.variable ("xAccl", xAccl);

Particle. Nababago ("yAccl", yAccl);

Particle. Nababago ("zAccl", zAccl);

// Simulan ang komunikasyon ng I2C bilang MASTER

Wire.begin ();

// Initialize serial komunikasi, itakda ang baud rate = 9600

Serial.begin (9600);

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Piliin ang rehistro ng pagpili ng saklaw

Wire.write (0x0F);

// Itakda ang saklaw +/- 2g

Wire.write (0x03);

// Stop I2C Transmission

Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Piliin ang rehistro ng bandwidth

Wire.write (0x10);

// Itakda ang bandwidth 7.81 Hz

Wire.write (0x08);

// Stop I2C Transmission

Wire.endTransmission ();

pagkaantala (300);}

walang bisa loop ()

{

unsigned int data [0];

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Piliin ang Mga Rehistro ng Data (0x02 - 0x07)

Wire.write (0x02);

// Stop I2C Transmission

Wire.endTransmission ();

// Humiling ng 6 bytes

Wire.requestFrom (Addr, 6);

// Basahin ang anim na byte

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

kung (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 ();

}

pagkaantala (300);

// I-convert ang data sa 10 bit

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

kung (xAccl> 511)

{

xAccl - = 1024;

}

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

kung (yAccl> 511)

{

yAccl - = 1024;

}

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

kung (zAccl> 511)

{

zAccl - = 1024;

}

// Output data sa dashboard

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

pagkaantala (1000);

Particle.publish ("Acceleration in Y-Axis:", String (yAccl));

pagkaantala (1000);

Particle.publish ("Acceleration in Z-Axis:", String (zAccl));

pagkaantala (1000);

}

Ang function ng Particle.variable () ay lumilikha ng mga variable upang maiimbak ang output ng sensor at ipinapakita ng pagpapaandar ng Particle.publish () ang output sa dashboard ng site.

Ang output ng sensor ay ipinapakita sa larawan sa itaas para sa iyong sanggunian.

Hakbang 4: Mga Aplikasyon:

Mga Aplikasyon
Mga Aplikasyon

Ang karamihan sa mga Accelerometers tulad ng BMA250 ay matatagpuan ang application nito sa mga laro at pagpapalit ng profile display. Ang module ng sensor na ito ay ginagamit din sa advanced na system ng pamamahala ng kuryente para sa mga mobile application. Ang BMA250 ay isang triaxial digital acceleration sensor na isinama sa isang matalinong on-chip na paggalaw na na-trigger ng makagambala na controller.

Inirerekumendang: