מעקב אחר תנועות באמצעות MPU-6000 ו- Raspberry Pi: 4 שלבים
מעקב אחר תנועות באמצעות MPU-6000 ו- Raspberry Pi: 4 שלבים
Anonim
Image
Image

MPU-6000 הוא חיישן מעקב תנועה בעל 6 צירים הכולל מד תאוצה 3 צירים וג'ירוסקופ 3 צירים. חיישן זה מסוגל לבצע מעקב יעיל אחר המיקום והמיקום המדויק של אובייקט במישור התלת ממדי. זה יכול להיות מועסק במערכות הדורשות ניתוח מיקום בדיוק הכי גבוה.

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

שלב 1: חומרה נדרשת:

חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת
חומרה נדרשת

החומרים הדרושים לנו להגשמת מטרתנו כוללים את רכיבי החומרה הבאים:

1. MPU-6000

2. פטל פטל

3. כבל I2C

4. מגן I2C לפאי פטל

5. כבל אתרנט

שלב 2: חיבור חומרה:

חיבור חומרה
חיבור חומרה
חיבור חומרה
חיבור חומרה

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

ה- MPU-6000 יפעל מעל I2C. להלן תרשים החיווט לדוגמה, המדגים כיצד לחבר כל ממשק של החיישן.

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

כל מה שאתה צריך זה ארבעה חוטים! רק ארבעה חיבורים נדרשים סיכות Vcc, Gnd, SCL ו- SDA ואלו מחוברים בעזרת כבל I2C.

קשרים אלה מודגמים בתמונות למעלה.

שלב 3: קוד למעקב אחר תנועה:

קוד למעקב אחר תנועה
קוד למעקב אחר תנועה

היתרון בשימוש בפטל פאי הוא בכך שהוא מספק לך את הגמישות של שפת התכנות בה ברצונך לתכנת את הלוח על מנת לחבר אליו את החיישן. תוך ניצול היתרון הזה של הלוח הזה, אנו מדגימים כאן את התכנות שלו בפייתון. פייתון היא אחת משפות התכנות הקלות ביותר עם התחביר הקל ביותר. ניתן להוריד את קוד הפיתון ל- MPU-6000 מקהילת GitHub שלנו, שהיא חנות Dcube

בנוסף לנוחות המשתמשים, אנו מסבירים את הקוד גם כאן:

כשלב הראשון של קידוד, עליך להוריד את ספריית SMBus במקרה של פייתון מכיוון שספרייה זו תומכת בפונקציות המשמשות את הקוד. אז, כדי להוריד את הספרייה אתה יכול לבקר בקישור הבא:

pypi.python.org/pypi/smbus-cffi/0.5.1

תוכל להעתיק את קוד העבודה מכאן גם:

יבוא smbus

זמן יבוא

# קבל אוטובוס I2C = smbus. SMBus (1)

כתובת MPU-6000, 0x68 (104)

# בחר רשם תצורה של גירוסקופ, 0x1B (27)

# 0x18 (24) טווח בקנה מידה מלא = 2000 dps

bus.write_byte_data (0x68, 0x1B, 0x18)

כתובת MPU-6000, 0x68 (104)

# בחר רשם תצורת מד תאוצה, 0x1C (28)

# 0x18 (24) טווח בקנה מידה מלא = +/- 16 גרם

bus.write_byte_data (0x68, 0x1C, 0x18)

כתובת MPU-6000, 0x68 (104)

# בחר רשם ניהול צריכת חשמל 1, 0x6B (107)

# 0x01 (01) PLL עם הפניה xGyro

bus.write_byte_data (0x68, 0x6B, 0x01)

time.sleep (0.8)

כתובת MPU-6000, 0x68 (104)

# קרא נתונים בחזרה מ 0x3B (59), 6 בתים

# מד תאוצה X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bus.read_i2c_block_data (0x68, 0x3B, 6)

# המרת הנתונים

xAccl = data [0] * 256 + נתונים [1]

אם xAccl> 32767:

xAccl -= 65536

yAccl = data [2] * 256 + נתונים [3]

אם yAccl> 32767:

yAccl -= 65536

zAccl = data [4] * 256 + נתונים [5]

אם zAccl> 32767:

zAccl -= 65536

כתובת MPU-6000, 0x68 (104)

# קרא נתונים בחזרה מ 0x43 (67), 6 בתים

# Gyrometer X-Axis MSB, X-Axis LSB, Y-Axis MSB, Y-Axis LSB, Z-Axis MSB, Z-Axis LSB

data = bus.read_i2c_block_data (0x68, 0x43, 6)

# המרת הנתונים

xGyro = data [0] * 256 + נתונים [1]

אם xGyro> 32767:

xGyro -= 65536

yGyro = data [2] * 256 + נתונים [3]

אם yGyro> 32767:

yGyro -= 65536

zGyro = data [4] * 256 + נתונים [5]

אם zGyro> 32767:

zGyro -= 65536

# פלט נתונים למסך

-"האצה בציר X: %d" %xAccl

-"האצה בציר Y: %d" %yAccl

-"האצה בציר Z: %d" %zAccl

-הדפס "ציר X של סיבוב: %d" %xGyro

-"ציר Y של סיבוב: %d" %yGyro-23.3.1 מ"מ

-"ציר סיבוב Z: %d" %zGyro-23.1.1 מ"מ

הקוד מבוצע באמצעות הפקודה הבאה:

$> python MPU-6000.py gt; python MPU-6000.py

פלט החיישן מוצג בתמונה למעלה לעיון המשתמש.

שלב 4: יישומים:

יישומים
יישומים

MPU-6000 הוא חיישן מעקב אחר תנועה, שמוצא את יישומו בממשק התנועה של סמארטפונים וטאבלטים. בסמארטפונים ניתן להשתמש בחיישנים אלה ביישומים כגון פקודות מחווה ליישומים ושליטה טלפונית, משחקים משופרים, מציאות רבודה, צילום וצפייה פנורמיים וניווט להולכי רגל ורכב. טכנולוגיית MotionTracking יכולה להמיר מכשירים וטאבלטים למכשירים חכמים תלת-ממדיים שניתן להשתמש בהם ביישומים החל מניטור בריאות וכושר וכלה בשירותים מבוססי מיקום.

מוּמלָץ: