
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-23 14:46


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



החומרים הדרושים לביצוע המשימה שלנו כוללים את רכיבי החומרה המפורטים להלן:
1. MPU-6000
2. פוטון חלקיקים
3. כבל I2C
4. מגן I2C לפוטון חלקיקים
שלב 2: חיבור חומרה:


סעיף חיבור החומרה מסביר בעצם את חיבורי החיווט הנדרשים בין החיישן לפוטון החלקיקים. הבטחת חיבורים נכונים היא ההכרח הבסיסי בעת עבודה על כל מערכת לתפוקה הרצויה. אז, החיבורים הנדרשים הם כדלקמן:
ה- MPU-6000 יפעל מעל I2C. להלן תרשים החיווט לדוגמה, המדגים כיצד לחבר כל ממשק של החיישן.
הלוח מחוץ לקופסה מוגדר לממשק I2C, ולכן אנו ממליצים להשתמש בחיבור זה אם אתה אגנוסטי אחרת. כל מה שאתה צריך זה ארבעה חוטים!
רק ארבעה חיבורים נדרשים סיכות Vcc, Gnd, SCL ו- SDA ואלו מחוברים בעזרת כבל I2C.
קשרים אלה מודגמים בתמונות למעלה.
שלב 3: קוד למעקב אחר תנועה:

נתחיל עם קוד החלקיקים עכשיו.
בעת השימוש במודול החיישנים עם הארדואינו, אנו כוללים את ספריית application.h ו- spark_wiring_i2c.h. הספרייה "application.h" ו- spark_wiring_i2c.h מכילה את הפונקציות המאפשרות תקשורת i2c בין החיישן לחלקיק.
קוד החלקיקים כולו ניתן להלן לנוחות המשתמש:
#include #include // כתובת MPU-6000 I2C היא 0x68 (104) #define Addr 0x68 int xGyro = 0, yGyro = 0, zGyro = 0, xAccl = 0, yAccl = 0, zAccl = 0; הגדרת void () {// הגדר משתנה Particle.variable ("i2cdevice", "MPU-6000"); Particle.variable ("xAccl", xAccl); Particle.variable ("yAccl", yAccl); Particle.variable ("zAccl", zAccl); Particle.variable ("xGyro", xGyro); Particle.variable ("yGyro", yGyro); Particle.variable ("zGyro", zGyro); // אתחל תקשורת I2C כ- Master Wire.begin (); // אתחל תקשורת טורית, הגדר קצב שידור = 9600 Serial.begin (9600); // התחל את שידור I2C Wire.beginTransmission (Addr); // בחר רישום תצורה של גירוסקופ Wire.write (0x1B); // טווח קנה מידה מלא = 2000 dps Wire.write (0x18); // עצור את שידור I2C Wire.endTransmission (); // התחל את שידור I2C Wire.beginTransmission (Addr); // בחר רישום תצורת מד תאוצה Wire.write (0x1C); // טווח בקנה מידה מלא = +/- 16 גרם Wire.write (0x18); // עצור את שידור I2C Wire.endTransmission (); // התחל את שידור I2C Wire.beginTransmission (Addr); // בחר רישום ניהול צריכת חשמל Wire.write (0x6B); // PLL עם הפניה xGyro Wire.write (0x01); // עצור את שידור I2C Wire.endTransmission (); עיכוב (300); } לולאת void () {נתוני int ללא חתום [6]; // התחל את שידור I2C Wire.beginTransmission (Addr); // בחר רישום נתונים Wire.write (0x3B); // עצור את שידור I2C Wire.endTransmission (); // בקש 6 בתים של נתונים Wire.requestFrom (Addr, 6); // קרא 6 בתים של נתונים אם (Wire.available () == 6) {data [0] = Wire.read (); data [1] = Wire.read (); data [2] = Wire.read (); data [3] = Wire.read (); data [4] = Wire.read (); data [5] = Wire.read (); } עיכוב (800); // המרת הנתונים xAccl = ((נתונים [1] * 256) + נתונים [0]); אם (xAccl> 32767) {xAccl -= 65536; } yAccl = ((נתונים [3] * 256) + נתונים [2]); אם (yAccl> 32767) {yAccl -= 65536; } zAccl = ((נתונים [5] * 256) + נתונים [4]); אם (zAccl> 32767) {zAccl -= 65536; } עיכוב (800); // התחל את שידור I2C Wire.beginTransmission (Addr); // בחר רישום נתונים Wire.write (0x43); // עצור את שידור I2C Wire.endTransmission (); // בקש 6 בתים של נתונים Wire.requestFrom (Addr, 6); // קרא 6 בתים של נתונים אם (Wire.available () == 6) {data [0] = Wire.read (); data [1] = Wire.read (); data [2] = Wire.read (); data [3] = Wire.read (); data [4] = Wire.read (); data [5] = Wire.read (); } // המרת הנתונים xGyro = ((נתונים [1] * 256) + נתונים [0]); אם (xGyro> 32767) {xGyro -= 65536; } yGyro = ((נתונים [3] * 256) + נתונים [2]); אם (yGyro> 32767) {yGyro -= 65536; } zGyro = ((נתונים [5] * 256) + נתונים [4]); אם (zGyro> 32767) {zGyro -= 65536; } // נתוני פלט ללוח המחוונים Particle.publish ("האצה בציר X:", מחרוזת (xAccl)); עיכוב (1000); Particle.publish ("האצה בציר Y:", מחרוזת (yAccl)); עיכוב (1000); Particle.publish ("האצה בציר Z:", מחרוזת (zAccl)); עיכוב (1000); פרסומת Particle.publish ("ציר X של סיבוב:", מחרוזת (xGyro)); עיכוב (1000); פרסומת Particle.publish ("ציר Y של סיבוב:", מחרוזת (yGyro)); עיכוב (1000); פרסומת Particle.publish ("ציר Z של סיבוב:", מחרוזת (zGyro)); עיכוב (1000); }
הפונקציה Particle.variable () יוצרת את המשתנים לאחסון הפלט של החיישן והפונקציה Particle.publish () מציגה את הפלט בלוח המחוונים של האתר.
פלט החיישן מוצג בתמונה למעלה לעיונך.
שלב 4: יישומים:

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

מערכת מעקב אחר תנועות ראש ל- VR: שמי סם KODO, במדריך זה אלמד אותך צעד אחר צעד כיצד להשתמש בחיישני IMU של Arduino לבניית מערכת מעקב ראש ל- VR. בפרויקט זה תצטרך: - תצוגת LCD HDMI : https: //www.amazon.com/Elecrow-Capacitive-interfac
מעקב אחר תנועות עיניים אנושיות: 6 שלבים

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

מדידת האצה באמצעות ADXL345 ופוטון חלקיקים: ה- ADXL345 הוא מד תאוצה קטן ודק במיוחד בעל 3 צירים עם מדידה ברזולוציה גבוהה (13 סיביות) עד ± 16 גרם. נתוני הפלט הדיגיטליים מעוצבים כהשלמה של 16 סיביות ונגישים באמצעות ממשק דיגיטלי I2 C. הוא מודד את
QeMotion - מעקב אחר תנועות לכל אוזניות !: 5 שלבים (עם תמונות)

QeMotion - מעקב אחר תנועות לכל אוזניות !: סקירה כללית: מכשיר זה מאפשר לך לנצל את תנועת הראש שלך כדי להפעיל אירועים בעצם כל משחק וידאו. הוא פועל על ידי מעקב אחר תנועת הראש שלך (או האוזניות בהתייחס לזה) והפעלת לחיצות מקלדת לתנועות מסוימות. אז המחשב שלך
מעקב אחר תנועות עיניים באמצעות חיישן אינפרא אדום: 5 שלבים

מעקב אחר תנועות עיניים באמצעות חיישן אינפרא אדום: השתמשתי בחיישן אינפרא אדום כדי לחוש תנועות עיניים ולשלוט ב- LED