חיישן MPU6050 כולל פונקציות רבות על פני השבב היחיד. הוא מורכב ממד תאוצה MEMS, מג'ירו MEMS וחיישן טמפרטורה. מודול זה מדויק מאוד בעת המרת ערכים אנלוגיים לדיגיטל מכיוון שיש לו חומרת אנלוגי ממיר דיגיטלי 16 ביט לכל ערוץ. מודול זה מסוגל ללכוד ערוצים x, y ו- z בו זמנית. יש לו ממשק I2C לתקשר עם הבקר המארח. מודול MPU6050 זה הוא שבב קומפקטי בעל מד תאוצה וג'ירו. זהו מכשיר שימושי מאוד עבור יישומים רבים כמו מזל"טים, רובוטים, חיישני תנועה. זה נקרא גם גירוסקופ או מד תאוצה עם ציר משולש.
היום במאמר זה אנו מתכוונים לממשק גירוסקופ MPU6050 זה עם ארדואינו ולהציג את הערכים מעל 16x2 LCD.
רכיבים נדרשים:
- ארדואינו אונו
- MPU-6050
- עציץ 10K
- כבל מגשר
- קרש לחם
- כבל יו אס בי
- ספק כוח
חיישן ג'יירו MPU6050:
MPU-6050 הוא ג'יירו 8-פינים ומד תאוצה בשבב יחיד. מודול זה עובד על תקשורת טורית I2C כברירת מחדל, אך ניתן להגדירו לממשק SPI על ידי הגדרת הרישום שלו. ל- I2C יש קווי SDA ו- SCL. כמעט כל הפינים הם רב תכליתיים, אך כאן אנו ממשיכים רק עם סיכות במצב I2C.
תצורת סיכה:
Vcc: - סיכה זו משמשת להפעלת מודול MPU6050 ביחס לקרקע
GND: - זה סיכה טחונה
SDA: - סיכת SDA משמשת לנתונים בין בקר למודול mpu6050
SCL: - סיכת SCL משמשת להזנת שעון
XDA: - זהו קו נתונים חיישן I2C SDA לתצורה וקריאה מחיישנים חיצוניים ((אופציונלי) לא נעשה שימוש במקרה שלנו)
XCL: - זהו קו שעון חיישן I2C SCL לתצורה וקריאה מחיישנים חיצוניים ((אופציונלי) לא נעשה שימוש במקרה שלנו)
ADO: - כתובת עבדים I2C LSB (לא רלוונטי במקרה שלנו)
INT: - סיכה הפסקה לציון נתונים מוכנים.
תיאור:
במאמר זה אנו מציגים קריאות טמפרטורה, גירו ומד תאוצה מעל LCD באמצעות MPU6050 עם Arduino. מודול זה נותן לנו ערכי שורות וערכים מנורמלים בפלט, אך ערכי השורה אינם יציבים ולכן הנה אנו מראים ערכים מנורמלים על גבי LCD. אם אתה רק רוצה ערך תאוצה, אתה יכול גם להשתמש ב- Accelerometer ADXL335 עם Arduino.
בפרויקט זה לראשונה הראינו ערך טמפרטורה על גבי LCD ואחרי 10 שניות אנו מציגים ערכי גירו ואחרי 10 שניות יש לנו קריאות מד תאוצה כפי שמוצג בתמונות למטה:
תרשים מעגל והסבר:
תרשים המעגל, לממשק MPU6050 עם Arduino, פשוט מאוד כאן השתמשנו ב- LCD ו- MPU6050. וכאן השתמשנו באספקת USB למחשב נייד. סיר 10k משמש לשליטה על בהירות ה- LCD. בקשר ל- MPU6050, ביצענו 5 חיבורים בהם חיברנו את אספקת החשמל 3.3v ואת האדמה של MPU6050 ל- 3.3v ואת האדמה של Arduino. סיכות SCL ו- SDA של MPU6050 מחוברות לפין A4 ו- A5 של Arduino. וסיכה INT של MPU6050 מחוברת להפריע 0 לארדואינו (D2). ה- RS, RW ו- EN של LCD מחוברים ישירות ל- 8, GND ו- 9 של Arduino. סיכת נתונים מחוברת ישירות לסיכה דיגיטלית מספר 10, 11, 12 ו -13.
הסבר על תכנות
חלק מתכנות קל גם לפרויקט זה. כאן השתמשנו בספריית MPU6050 זו כדי לממשק אותה עם Arduino. אז קודם כל, עלינו להוריד את ספריית MPU6050 מ- GitHub ולהתקין אותה ב- Arduino IDE.
אחריה נוכל למצוא קודים לדוגמא בדוגמה. המשתמש יכול לבדוק את הקוד על ידי העלאתו ישירות לארדואינו ויכול לראות ערכים על גבי צג סדרתי. לחלופין, המשתמש יכול להשתמש בקוד שלנו המופיע בסוף המאמר כדי להציג ערכים גם על גבי צג LCD וצג סדרתי.
בקידוד כללנו כמה ספריות נדרשות כמו MPU6050 ו- LCD.
#לִכלוֹל
בשנת התקנת פונקציה, אנו לאתחל שני מכשירים ואת הודעת ברכת כתיבה מעל LCD
הגדרת חלל () {lcd.begin (16,2); lcd.createChar (0, תואר); Serial.begin (9600); Serial.println ("אתחל MPU6050"); בעוד (! mpu.begin (MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G)) {lcd.clear (); lcd.print ("המכשיר לא נמצא"); Serial.println ("לא הצלחנו למצוא חיישן MPU6050 חוקי, בדוק חיווט!"); עיכוב (500); } ספירה = 0; mpu.calibrateGyro (); mpu.setThreshold (3); בשנת לולאה פונקציה, שכינינו שלוש פונקציות בכל 10seconds עבור מוצגות טמפרטורה, ג'יירו, ומד תאוצה לקרוא על LCD. שלוש הפונקציות הללו הן tempShow, gyroShow ו- accelShow , אתה יכול לבדוק את הפונקציות בקוד הארדואינו השלם שניתן בסוף מאמר זה:
לולאה בטלה () {lcd.clear (); lcd.print ("טמפרטורה"); רחוב ארוך = מילי (); Serial.println ("טמפרטורה"); בעוד (מילי ()
מג'ירו MPU6050 ומד תאוצה משמשים לזיהוי המיקום והכיוון של כל מכשיר. גירו משתמש בכוח המשיכה של כדור הארץ כדי לקבוע את עמדות ציר ה- x, y ו- z ומד התאוצה מזהה בהתבסס על קצב שינוי התנועה. כבר השתמשנו במד התאוצה עם ארדואינו ברבים מהפרויקטים שלנו כמו:
- רובוט מבוקר תנועת יד מבוסס תאוצה
- מערכת התראות על תאונות תאונות דרכים על בסיס ארדואינו
- אזעקת גלאי רעידות אדמה באמצעות Arduino