Talaan ng mga Nilalaman:

Paano Sukatin ang Angle Sa MPU-6050 (GY-521): 3 Mga Hakbang
Paano Sukatin ang Angle Sa MPU-6050 (GY-521): 3 Mga Hakbang

Video: Paano Sukatin ang Angle Sa MPU-6050 (GY-521): 3 Mga Hakbang

Video: Paano Sukatin ang Angle Sa MPU-6050 (GY-521): 3 Mga Hakbang
Video: How to use MPU-6050 Accelerometer and Gyroscope with Arduino code 2024, Nobyembre
Anonim
Paano Sukatin ang Angle Sa MPU-6050 (GY-521)
Paano Sukatin ang Angle Sa MPU-6050 (GY-521)

Sa Instructable na ito, susukatin namin ang anggulo gamit ang isang Arduino. Kailangan namin ng ilang mga kable, isang Arduino UNO at GY-521 (MPU-6050) upang masukat ang anggulo.

Hakbang 1: Pagkonekta sa MPU-6050 sa Arduino UNO

Pagkonekta sa MPU-6050 sa Arduino UNO
Pagkonekta sa MPU-6050 sa Arduino UNO

Kailangan namin ng ilang mga male-female cable, isang Arduino UNO at GY-521 (MPU-6050) sensor upang sukatin ang anggulo. Kailangan nating ikonekta ang MPU-6050 sa Arduino UNO tulad ng ipinakita sa larawan. Kaya,

  • Ang VCC sa 5V (gumagana ang MPU-6050 na may 3.3V ngunit pinapataas ito ng GY-521 sa 5V.),
  • GND sa GND,
  • SCL hanggang A5,
  • SDA hanggang A4,
  • ADO sa GND,
  • INT sa digital pin 2.

Hakbang 2: Code

Code
Code

Narito ang code. Gumagamit ito ng I2C. Kumuha ako ng ilang bahagi ng code mula sa internet. (Bahagi ng I2C)

// Isinulat ni Ahmet Burkay KIRNIK // Pagsukat ng Angle sa MPU-6050 (GY-521)

# isama

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

int minVal = 265; int maxVal = 402;

doble x; doble y; doble z;

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (totoo); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (false); Wire.requestFrom (MPU_addr, 14, totoo); AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = mapa (AcX, minVal, maxVal, -90, 90); int yAng = mapa (AcY, minVal, maxVal, -90, 90); int zAng = mapa (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 ="); Serial.println (x);

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

Serial.print ("AngleZ ="); Serial.println (z); Serial.println ("-----------------" "); pagkaantala (400); }

Hakbang 3: Tapos Na

Tapos na!
Tapos na!

Tapos na! Kung hindi ito gumana o kailangan mo ng tulong, mangyaring mag-iwan ng komento o magpadala ng isang email. Mahahanap mo ang aking email adress mula sa mga komento. Siyanga pala, ang aking English ay hindi gaanong maganda kaya humihingi ako ng paumanhin para sa aking hindi magandang Ingles.

Ahmet Burkay KIRNIK

Istanbul / TURKEY

I-edit: Pagkatapos ng 2 taon, naging mas mahusay ang aking Ingles kaya't naitama ko ang ilang mga pagkakamali.

Inirerekumendang: