MPU6050: מודול למיצוב עם Arduino

לוח MPU6050

אם אתה צריך ליצור פרויקט ולמקם אותו, כלומר, דע איך הוא ממוקם לגבי שטח, אתה יכול להשתמש במודול MPU6050. כלומר, מודול זה הוא יחידת מדידה אינרציאלית או IMU (יחידות מדידה אינרציאלית) עם 6 דרגות חופש (DoF). זה הודות לחיישנים מסוג 3-ציר תאוצה וגירוסקופ 3-ציר שהוא מיישם לעבודה.

MPU6050 זה יכול לדעת כיצד האובייקט המכיל ממוקם לשימוש בו יישומים ניווט, גוניומטריה, ייצוב, בקרת מחוות וכו '. טלפונים ניידים כוללים בדרך כלל חיישנים מהסוג הזה כדי למשל לשלוט בפונקציות מסוימות באמצעות מחוות, כמו עצירה אם הסמארטפון מתהפך, נהיגה ברכבים במשחקי וידאו על ידי סיבוב הנייד כאילו היה גלגל הגה וכו '.

מהו מד תאוצה וגירוסקופ?

דוגמאות MEMS

דוגמאות MEMS

ובכן, בואו נלך בחלקים. הדבר הראשון הוא לראות מהם סוגים אלה של חיישנים מסוגלים לזהות תאוצה ופניות, כפי שניתן להסיק משמותיהם.

  • תאוצה: מודד תאוצה, כלומר שינוי המהירות ליחידת זמן. זכרו שבפיזיקה, שינוי המהירות עם הזמן (a = dV / dt) הוא הגדרת התאוצה. על פי החוק השני של ניוטון, יש לנו גם ש- A = F / m, וזה מה שמדי תאוצה משתמשים בו כדי לעבוד, כלומר הם משתמשים בפרמטרים של כוח ומסה של האובייקט. כדי שניתן יהיה ליישם זאת באלקטרוניקה משתמשים בטכניקות MEMS (Micro Electro Mechanical Systems), הנבדלות מטכניקות ייצור שבבים אלקטרוניים קונבנציונליים, מכיוון שחלקים מכניים נוצרים ב- MEMS. במקרה זה נוצרים מסלולים או אלמנטים המסוגלים למדוד תאוצות. זה מרמז שניתן לקחת יחידות רבות אחרות, כגון מהירות (אם התאוצה משולבת בזמן), אם היא משולבת שוב מתקבלת התזוזה וכו '. כלומר, פרמטרים מעניינים מאוד לדעת את המיקום או לזהות תנועה של אובייקט.
  • ג'ִירוֹסקוֹפּ: נקרא גם גירוסקופ, זהו מכשיר המודד את מהירות הזווית של אובייקט, כלומר תזוזת הזווית ליחידת זמן או כמה מהר מסתובב גוף סביב צירו. במקרה זה, טכניקות MEMS משמשות גם למדידת המהירות האמורה באמצעות אפקט המכונה Coriolis. הודות לכך ניתן למדוד את מהירות הזווית או על ידי שילוב מהירות הזווית ביחס לזמן ניתן להשיג את תזוזת הזווית.

מודול MPU6050

MPU6050 pinout

עכשיו שאתה יודע מה מד התאוצה והג'ירוסקופ, את מודול MPU6050 זהו לוח אלקטרוני המשלב את שני האלמנטים הללו כדי לאפשר לך למדוד את השינויים הללו במיקום של אלמנט ובכך להיות מסוגל ליצור תגובה. למשל, שכאשר אובייקט נע נורית LED נדלקת, או דברים מורכבים הרבה יותר.

כמו שאמרתי, יש לו 6 צירי חופש, DoF, מד תאוצה תאוצה X, Y ו- Z עם 3 צירים ומערכת גירוסקופ אחרת עם 3 צירים למדידת מהירות זוויתית. עליכם לקחת בחשבון לא לטעות באופן בו אתם ממקמים את המודול וכיוון הסיבוב למדידות, שכן אם תעשו את הסימן השגוי זה יהיה קצת כאוטי. התבונן בתמונה הבאה בה היא מציינת את כיוון הצירים (עם זאת, שים לב כי גם על PCB עצמו מודפס בצד אחד):

גליון נתונים MPU6050

בהתחשב בזה ו הפינאוטפחות או יותר יש לך הכל ברור להתחיל להשתמש ב- MPU6050. כפי שניתן לראות בתמונה הקודמת, החיבורים פשוטים למדי וזה מאפשר לתקשורת I2C להיות תואם לרוב המיקרו-בקרים, כולל זה של ארדואינו. לסיכות SCL ו- SDA יש לוח נגד נגד משיכה לחיבור ישיר ללוח הארדואינו, כך שאינך צריך לדאוג להוסיף אותם בעצמך.

כדי לעבוד עם שני הכיוונים באוטובוס I2C, אתה יכול להשתמש בהם סיכות וכיוונים:

  • AD0 = 1 או גבוה (5v): עבור כתובת I0C 69x2.
  • AD0 = 0 או נמוך (GND או Nc): לכתובת 0x68 של אוטובוס I2C.

זכרו שמתח ההפעלה של הדגם הוא 3v3, אך למרבה המזל יש לו ווסת מובנה, כך שניתן להחליף אותו עם 5v של הארדואינו ללא בעיה והוא יהפוך אותו ל -3.3 וולט.

אגב, בעל התנגדות פנימית ל- GND, אם סיכה זו אינה מחוברת, הכתובת כברירת מחדל הוא יהיה 0x68מכיוון שהוא מחובר כברירת מחדל לקרקע, ומפרש אותו כ- 0 לוגי.

שילוב עם ארדואינו

חיבור Arduino ו- MPU6050

אתה יכול לקבל מידע נוסף על אוטובוס I2C במאמר זה. אתה כבר יודע שבהתאם ללוח הארדואינו הסיכות המשמשות לאוטובוס משתנות, אך ב Arduino UNO הוא הסיכה האנלוגית A4 ו- A5, עבור SDA (נתונים) ו- SCL (שעון) בהתאמה. הם הסיכות היחידות של Arduino, יחד עם ה- 5v ו- GND להפעלת הלוח, שעליכם להשתמש בו. אז החיבור פשוט ככל האפשר.

עבור הפונקציות של MPU6050 אתה יכול להשתמש בספריות שמהן תוכל לקבל מידע נוסף בקישור זה עבור ה- I2C של המודול ושל האוטובוס MPU6050.

תכנות לוח Arduino אינו פשוט מדי עם MPU6050, ולכן זה לא למתחילים. בנוסף, לדעת את גבולות התאוצות או טווחי הזוויות, אתה יכול לכייל כדי לקבוע מה הייתה התנועה או התאוצה המדויקים. עם זאת, כדי שתוכלו לפחות לקבל דוגמה כיצד להגיב על השימוש בו, תוכלו לראות קוד זה מתוך שרטוט לדוגמא ל- IDE של ארדואינו אשר יקרא את הערכים שתועדו על ידי מד התאוצה והגירוסקופ:

// Bibliotecas necesarias:
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"

// Dependiendo del estado de AD0, la dirección puede ser 0x68 o 0x69, para controlar así el esclavo que leerá por el bus I2C
MPU6050 sensor;

// Valores RAW o en crudo leidos del acelerometro y giroscopio en los ejes x,y,z
int ax, ay, az;
int gx, gy, gz;

void setup() {
  Serial.begin(57600);    //Función para iniciar el puerto serie con 57600 baudios
  Wire.begin();           //Inicio para el bus I2C 
  sensor.initialize();    //Iniciando del sensor MPU6050

  if (sensor.testConnection()) Serial.println("Sensor iniciado correctamente");
  else Serial.println("Error al iniciar el sensor");
}

void loop() {
  // Leer las aceleraciones y velocidades angulares
  sensor.getAcceleration(&ax, &ay, &az);
  sensor.getRotation(&gx, &gy, &gz);

  // Muestra las lecturas que va registrando separadas por una tabulación 
  Serial.print("a[x y z] g[x y z]:\t");
  Serial.print(ax); Serial.print("\t");
  Serial.print(ay); Serial.print("\t");
  Serial.print(az); Serial.print("\t");
  Serial.print(gx); Serial.print("\t");
  Serial.print(gy); Serial.print("\t");
  Serial.println(gz);

  delay(100);
}

אם אתה מתחיל ואינך יודע טוב כיצד לתכנת עם Arduino IDEקשה יהיה להבין את זה, כך שתוכל להתייעץ בחינם עם המדריך שלנו עם קורס ההיכרות לתכנות Arduino ...


היה הראשון להגיב

השאירו את התגובה שלכם

כתובת הדוא"ל שלך לא תפורסם. שדות חובה מסומנים *

*

*

  1. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.