Turinys:

Kaip matuoti kampą naudojant MPU-6050 (GY-521): 3 žingsniai
Kaip matuoti kampą naudojant MPU-6050 (GY-521): 3 žingsniai

Video: Kaip matuoti kampą naudojant MPU-6050 (GY-521): 3 žingsniai

Video: Kaip matuoti kampą naudojant MPU-6050 (GY-521): 3 žingsniai
Video: Kampų matavimas ir jų rūšys | Laipsniai ir radianai | Smailusis, statusis, bukasis ir kitokie kampai 2024, Lapkritis
Anonim
Kaip matuoti kampą naudojant MPU-6050 (GY-521)
Kaip matuoti kampą naudojant MPU-6050 (GY-521)

Šioje instrukcijoje mes išmatuosime kampą naudodami „Arduino“. Mums reikia kai kurių kabelių, „Arduino UNO“ir „GY-521“(MPU-6050), kad galėtume išmatuoti kampą.

1 veiksmas: MPU-6050 prijungimas prie „Arduino UNO“

MPU-6050 prijungimas prie „Arduino UNO“
MPU-6050 prijungimas prie „Arduino UNO“

Kampo matavimui mums reikia kai kurių vyrų ir moterų kabelių, „Arduino UNO“ir GY-521 (MPU-6050) jutiklio. Turime prijungti MPU-6050 prie „Arduino UNO“, kaip parodyta paveikslėlyje. Taigi,

  • VCC iki 5 V (MPU-6050 veikia su 3,3 V, bet GY-521 padidina jį iki 5 V.),
  • Nuo GND iki GND,
  • Nuo SCL iki A5,
  • SDA į A4,
  • ADO į GND,
  • INT į skaitmeninį kaištį 2.

2 žingsnis: kodas

Kodas
Kodas

Čia yra kodas. Jis naudoja I2C. Kai kurias kodo dalis paėmiau iš interneto. (I2C dalis)

// Parašė Ahmetas Burkay KIRNIKAS // Kampų matavimas naudojant MPU-6050 (GY-521)

#įtraukti

const int MPU_addr = 0x68; int16_t AcX, AcY, AcZ, Tmp, GyX, GyY, GyZ;

int minVal = 265; int maxVal = 402;

dvigubas x; dvigubas y; dvigubas z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (tiesa); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (klaidinga); Wire.requestFrom (MPU_addr, 14, tiesa); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = žemėlapis (AcX, minVal, maxVal, -90, 90); int yAng = žemėlapis (AcY, minVal, maxVal, -90, 90); int zAng = žemėlapis (AcZ, minVal, maxVal, -90, 90);

x = RAD_TO_DEG * (atan2 (-yAng, -zAng)+PI); y = RAD_TO_DEG * (atan2 (-xAng, -zAng)+PI); z = RAD_TO_DEG * (atan2 (-yAng, -xAng)+PI);

Serial.print ("AngleX ="); Serijinis.println (x);

Serial.print ("AngleY ="); Serial.println (y);

Serial.print ("AngleZ ="); Serijinis.println (z); Serial.println ("----------------------------------------"); vėlavimas (400); }

3 žingsnis: padaryta

Padaryta!
Padaryta!

Padaryta! Jei tai neveikia arba jums reikia pagalbos, palikite komentarą arba atsiųskite el. Mano el. Pašto adresą galite rasti komentaruose. Beje, mano anglų kalba nėra tokia gera, todėl atsiprašau už blogą anglų kalbą.

Ahmetas Burkay KIRNIKAS

Stambulas, Turkija

Redaguoti: Po 2 metų mano anglų kalba pagerėjo, todėl ištaisiau kai kurias klaidas.

Rekomenduojamas: