Talaan ng mga Nilalaman:

Pag-interfacing ng 3-Axis Gyroscope Sensor BMG160 Sa Particle: 5 Mga Hakbang
Pag-interfacing ng 3-Axis Gyroscope Sensor BMG160 Sa Particle: 5 Mga Hakbang

Video: Pag-interfacing ng 3-Axis Gyroscope Sensor BMG160 Sa Particle: 5 Mga Hakbang

Video: Pag-interfacing ng 3-Axis Gyroscope Sensor BMG160 Sa Particle: 5 Mga Hakbang
Video: How To Track Orientation with Arduino | ADXL345 Accelerometer Tutorial 2024, Hulyo
Anonim
Image
Image

Sa panahon ngayon, higit sa kalahati ng kabataan at mga bata ay mahilig sa paglalaro at lahat ng mga mahilig dito, na nabighani ng mga teknikal na aspeto ng paglalaro ay alam ang kahalagahan ng paggalaw ng pakiramdam sa domain na ito. Namangha rin kami sa parehong bagay at dalhin lamang ito sa mga board, naisip naming magtrabaho sa isang gyroscope sensor na maaaring masukat ang angular rate ng anumang bagay. Kaya, ang sensor na kinuha namin upang harapin ang gawain ay ang BMG160. Ang BMG160 ay isang 16-bit, digital, triaxial, sensor ng gyroscope na maaaring sukatin ang angular rate sa tatlong patas na sukat ng silid.

Sa tutorial na ito, ipapakita namin ang pagtatrabaho ng BMG160 sa Particle Photon.

Ang hardware na kakailanganin mo para sa hangaring ito ay ang mga sumusunod:

1. BMG160

2. Particle photon

3. I2C Cable

4. I2C Shield para sa Photicle ng Particle

Hakbang 1: Pangkalahatang-ideya ng BMG160:

Ang iyong kailangan..!!
Ang iyong kailangan..!!

Una sa lahat nais naming pamilyar ka sa mga pangunahing tampok ng module ng sensor na ang BMG160 at ang protocol ng komunikasyon kung saan ito gumagana.

Ang BMG160 ay karaniwang isang 16-bit, digital, triaxial, sensor ng gyroscope na maaaring sukatin ang mga rate ng angular. Ito ay may kakayahang computing angular rate sa tatlong patas na sukat ng silid, ang x-, y- at z-axis, at pagbibigay ng kaukulang mga signal ng output. Maaari itong makipag-usap sa board ng raspberry pi gamit ang I2C komunikasyon sa komunikasyon. Ang partikular na modyul na ito ay dinisenyo upang matugunan ang mga kinakailangan para sa mga aplikasyon ng consumer pati na rin mga hangarin sa industriya.

Ang protocol ng komunikasyon kung saan gumagana ang sensor ay I2C. Ang I2C ay nangangahulugang inter-integrated circuit. Ito ay isang protocol ng komunikasyon kung saan nagaganap ang komunikasyon sa pamamagitan ng mga linya ng SDA (serial data) at SCL (serial clock). Pinapayagan ang pagkonekta ng maraming mga aparato nang sabay. Ito ay isa sa pinakasimpleng at pinaka mahusay na protocol ng komunikasyon.

Hakbang 2: Ano ang Kailangan Mo.. !

Ang iyong kailangan..!!
Ang iyong kailangan..!!
Ang iyong kailangan..!!
Ang iyong kailangan..!!
Ang iyong kailangan..!!
Ang iyong kailangan..!!

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

1. BMG160

2. Particle Photon

3. I2C Cable

4. I2C Shield Para sa Photicle ng Particle

Hakbang 3: 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. 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 BMG160 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 4: 3-Axis Gyroscope Measurement Particle Code:

3-Axis Gyroscope Pagsukat Code ng Particle
3-Axis Gyroscope Pagsukat Code ng Particle
3-Axis Gyroscope Pagsukat Code ng Particle
3-Axis Gyroscope Pagsukat Code ng Particle

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

// BMG160 I2C address ay 0x68 (104)

# tukuyin ang Addr 0x68

int xGyro = 0, yGyro = 0, zGyro = 0;

walang bisa ang pag-setup ()

{

// Itakda ang variable

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

Particle.variable ("xGyro", xGyro);

Particle. Iba-iba ("yGyro", yGyro);

Particle. Iba-iba ("zGyro", zGyro);

// Initialise I2C na komunikasyon bilang MASTER

Wire.begin ();

// Initialise Serial Communication

Serial.begin (9600);

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Select Range register

Wire.write (0x0F);

// Configure full scale 2000 dps

Wire.write (0x80);

// Stop I2C Transmission

Wire.endTransmission ();

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Piliin ang rehistro ng Bandwidth

Wire.write (0x10);

// Set Bandwidth = 200 Hz

Wire.write (0x04);

// Stop I2C Transmission

Wire.endTransmission ();

pagkaantala (300);

}

walang bisa loop ()

{

unsigned int data [6];

// Start I2C Transmission

Wire.beginTransmission (Addr);

// Piliin ang pagrehistro ng data

Wire.write (0x02);

// Stop I2C Transmission

Wire.endTransmission ();

// Humiling ng 6 bytes ng data

Wire.requestFrom (Addr, 6);

// Basahin ang 6 bytes ng data

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro 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

xGyro = ((data [1] * 256) + data [0]);

kung (xGyro> 32767)

{

xGyro - = 65536;

}

yGyro = ((data [3] * 256) + data [2]);

kung (yGyro> 32767)

{

yGyro - = 65536;

}

zGyro = ((data [5] * 256) + data [4]);

kung (zGyro> 32767)

{

zGyro - = 65536;

}

// Output data sa dashboard

Particle.publish ("X-Axis of Rotation:", String (xGyro));

Particle.publish ("Y-Axis of Rotation:", String (yGyro));

Particle.publish ("Z-Axis of Rotation:", String (zGyro));

pagkaantala (1000);

}

Hakbang 5: Mga Aplikasyon:

Mga Aplikasyon
Mga Aplikasyon

Ang BMG160 ay may iba't ibang bilang ng mga application sa mga aparato tulad ng mga cell phone, human machine interface device. Ang module ng sensor na ito ay dinisenyo upang matugunan ang mga kinakailangan para sa mga aplikasyon ng consumer tulad ng pagpapapanatag ng imahe (DSC at camera-phone), gaming at pagturo ng mga aparato. Ginagamit din ito sa mga system na nangangailangan ng pagkilala sa kilos at mga sistemang ginamit sa nabigasyon sa panloob.

Inirerekumendang: