Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
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 kasama si Arduino Nano.
Ang hardware na kakailanganin mo para sa hangaring ito ay ang mga sumusunod:
1. BMG160
2. Arduino Nano
3. I2C Cable
4. I2C Shield Para kay Arduino Nano
Hakbang 1: Pangkalahatang-ideya ng BMG160:
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 mga materyal na kailangan namin para makamit ang aming layunin ay may kasamang mga sumusunod na bahagi ng hardware:
1. BMG160
2. Arduino Nano
3. I2C Cable
4. I2C Shield para kay Arduino Nano
Hakbang 3: Hardware Hookup:
Karaniwang ipinapaliwanag ng seksyon ng hookup ng hardware ang mga koneksyon sa mga kable na kinakailangan sa pagitan ng sensor at ng Arduino. 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: Pagsukat ng 3-Axis Gyroscope Arduino Code:
Magsisimula tayo sa arduino code ngayon.
Habang ginagamit ang module ng sensor na may arduino, isinasama namin ang Wire.h library. Naglalaman ang library ng "Wire" ng mga pagpapaandar na nagpapadali sa komunikasyon ng i2c sa pagitan ng sensor at ng arduino board.
Ang buong arduino code ay ibinibigay sa ibaba para sa kaginhawaan ng gumagamit:
# isama // // BMG160 I2C address ay 0x68 (104)
# tukuyin ang Addr 0x68
walang bisa ang pag-setup ()
{
// Initialise I2C na komunikasyon bilang MASTER
Wire.begin ();
// Initialise Serial Communication, itakda ang baud rate = 9600
Serial.begin (9600);
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Select Range register
Wire.write (0x0F);
// I-configure ang buong saklaw na saklaw 2000 dps
Wire.write (0x80);
// Stop I2C Transmission
Wire.endTransmission ();
// Start I2C Transmission
Wire.beginTransmission (Addr);
// Piliin ang rehistro ng Bandwidth
Wire.write (0x10);
// Itakda ang 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 rehistro ng data ng Gyrometer
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
int xGyro = ((data [1] * 256) + data [0]);
int yGyro = ((data [3] * 256) + data [2]);
int zGyro = ((data [5] * 256) + data [4]);
// Output data sa serial monitor
Serial.print ("X-Axis of Rotation:");
Serial.println (xGyro); Serial.print ("Y-Axis of Rotation:");
Serial.println (yGyro); Serial.print ("Z-Axis of Rotation:");
Serial.println (zGyro);
pagkaantala (500);
}
Hakbang 5: 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.