Πώς να μετρήσετε τη γωνία με MPU-6050 (GY-521): 3 βήματα
Πώς να μετρήσετε τη γωνία με MPU-6050 (GY-521): 3 βήματα
Anonim
Πώς να μετρήσετε τη γωνία με MPU-6050 (GY-521)
Πώς να μετρήσετε τη γωνία με MPU-6050 (GY-521)

Σε αυτό το Instructable, θα μετρήσουμε τη γωνία με ένα Arduino. Χρειαζόμαστε μερικά καλώδια, ένα Arduino UNO και GY-521 (MPU-6050) για να μετρήσουμε τη γωνία.

Βήμα 1: Σύνδεση του MPU-6050 στο Arduino UNO

Σύνδεση MPU-6050 με Arduino UNO
Σύνδεση MPU-6050 με Arduino UNO

Χρειαζόμαστε καλώδια αρσενικά-θηλυκά, έναν αισθητήρα Arduino UNO και GY-521 (MPU-6050) για τη μέτρηση της γωνίας. Πρέπει να συνδέσουμε το MPU-6050 με το Arduino UNO όπως φαίνεται στην εικόνα. Ετσι,

  • VCC σε 5V (το MPU-6050 λειτουργεί με 3.3V αλλά το GY-521 το αυξάνει στα 5V.),
  • GND σε GND,
  • SCL έως A5,
  • SDA έως A4,
  • ADO στο GND,
  • INT στην ψηφιακή ακίδα 2.

Βήμα 2: Κωδικός

Κώδικας
Κώδικας

Εδώ είναι ο κωδικός. Χρησιμοποιεί I2C. Πήρα μερικά μέρη κώδικα από το διαδίκτυο. (Μέρος I2C)

// Γράφτηκε από τον Ahmet Burkay KIRNIK // Measurement of Angle with MPU-6050 (GY-521)

#περιλαμβάνω

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

int minVal = 265; int maxVal = 402;

διπλό x? διπλό y? διπλό z?

void setup () {Wire.begin (); Wire.beginTransmission (MPU_addr); Wire.write (0x6B); Wire.write (0); Wire.endTransmission (true); Serial.begin (9600); } void loop () {Wire.beginTransmission (MPU_addr); Wire.write (0x3B); Wire.endTransmission (false); Wire.requestFrom (MPU_addr, 14, true)? AcX = Wire.read () << 8 | Wire.read (); AcY = Wire.read () << 8 | Wire.read (); AcZ = Wire.read () << 8 | Wire.read (); int xAng = χάρτης (AcX, minVal, maxVal, -90, 90); int yAng = χάρτης (AcY, minVal, maxVal, -90, 90); int zAng = χάρτης (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 ("---------------------------------------------"); καθυστέρηση (400)? }

Βήμα 3: Τέλος

Εγινε!
Εγινε!

Εγινε! Εάν δεν λειτουργεί ή χρειάζεστε βοήθεια, αφήστε ένα σχόλιο ή στείλτε ένα email. Μπορείτε να βρείτε τη διεύθυνση ηλεκτρονικού ταχυδρομείου μου από τα σχόλια. Παρεμπιπτόντως, τα αγγλικά μου δεν είναι τόσο καλά, γι 'αυτό ζητώ συγγνώμη για τα κακά μου αγγλικά.

Αχμέτ Μπουρκάι ΚΙΡΝΙΚ

Κωνσταντινούπολη, Τουρκία

Επεξεργασία: Μετά από 2 χρόνια, τα αγγλικά μου βελτιώθηκαν, οπότε διόρθωσα κάποια λάθη.

Συνιστάται: