תוכן עניינים:

ממשק של חיישן ג'ירוסקופ 3 צירים BMG160 עם Arduino Nano: 5 שלבים
ממשק של חיישן ג'ירוסקופ 3 צירים BMG160 עם Arduino Nano: 5 שלבים

וִידֵאוֹ: ממשק של חיישן ג'ירוסקופ 3 צירים BMG160 עם Arduino Nano: 5 שלבים

וִידֵאוֹ: ממשק של חיישן ג'ירוסקופ 3 צירים BMG160 עם Arduino Nano: 5 שלבים
וִידֵאוֹ: AndroidApps.co.il | LG Optimus Black :סקירה 2024, דֵצֶמבֶּר
Anonim
Image
Image

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

במדריך זה אנו הולכים להדגים את פעולתו של BMG160 עם Arduino Nano.

חומרה שתזדקק לה למטרה זו היא כדלקמן:

1. BMG160

2. ארדואינו ננו

3. כבל I2C

4. מגן I2C עבור Arduino Nano

שלב 1: סקירה כללית של BMG160:

מה אתה צריך..!!
מה אתה צריך..!!

קודם כל ברצוננו להכיר לך את התכונות הבסיסיות של מודול החיישנים שהוא BMG160 ואת פרוטוקול התקשורת שעליו הוא פועל.

BMG160 הוא בעצם חיישן ג'ירוסקופ, 16 סיביות, דיגיטאלי, טריאקסיאלי, שיכול למדוד קצבי זווית. הוא מסוגל לחשב קצבי זווית בשלושה ממדי חדר בניצב, ציר x-, y- ו- z, ולספק את אותות הפלט המתאימים. הוא יכול לתקשר עם לוח הפטל פטל באמצעות פרוטוקול התקשורת I2C. מודול ספציפי זה מיועד לענות על דרישות ליישומי צריכה וכן למטרות תעשייתיות.

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

שלב 2: מה שאתה צריך..

מה אתה צריך..!!
מה אתה צריך..!!
מה אתה צריך..!!
מה אתה צריך..!!
מה אתה צריך..!!
מה אתה צריך..!!

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

1. BMG160

2. ארדואינו ננו

3. כבל I2C

4. מגן I2C עבור Arduino Nano

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

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

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

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

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

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

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

שלב 4: מדידת גירוסקופ 3 צירים קוד ארדואינו:

קוד ארדואינו למדידת גירוסקופ בעל 3 צירים
קוד ארדואינו למדידת גירוסקופ בעל 3 צירים
קוד ארדואינו למדידת גירוסקופ בעל 3 צירים
קוד ארדואינו למדידת גירוסקופ בעל 3 צירים

נתחיל עם קוד הארדואינו עכשיו.

בעת השימוש במודול החיישנים עם הארדואינו, אנו כוללים את ספריית Wire.h. ספריית "Wire" מכילה את הפונקציות המאפשרות תקשורת i2c בין החיישן ללוח הארדואינו.

קוד הארדואינו כולו ניתן להלן לנוחות המשתמש:

#include // כתובת BMG160 I2C היא 0x68 (104)

#define Addr 0x68

הגדרת חלל ()

{

// אתחל תקשורת I2C כ- MASTER

Wire.begin ();

// אתחל תקשורת סדרתית, הגדר קצב שידור = 9600

Serial.begin (9600);

// התחל את שידור I2C

Wire.beginTransmission (Addr);

// בחר רישום טווח

Wire.write (0x0F);

// הגדר טווח בקנה מידה מלא 2000 dps

Wire.write (0x80);

// עצור את שידור I2C

Wire.endTransmission ();

// התחל את שידור I2C

Wire.beginTransmission (Addr);

// בחר מרשם רוחב פס

Wire.write (0x10);

// הגדר רוחב פס = 200 הרץ

Wire.write (0x04);

// עצור את שידור I2C

Wire.endTransmission ();

עיכוב (300);

}

לולאת חלל ()

{

נתוני int ללא חתום [6];

// התחל את שידור I2C

Wire.beginTransmission (Addr);

// בחר את רשימת הנתונים של Gyrometer

Wire.write (0x02);

// עצור את שידור I2C

Wire.endTransmission ();

// בקש 6 בתים של נתונים

Wire.requestFrom (Addr, 6);

// קרא 6 בתים של נתונים

// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb

אם (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 ();

}

עיכוב (300);

// המר את הנתונים

int xGyro = ((נתונים [1] * 256) + נתונים [0]);

int yGyro = ((נתונים [3] * 256) + נתונים [2]);

int zGyro = ((נתונים [5] * 256) + נתונים [4]);

// נתוני פלט למסך הטורי

Serial.print ("ציר X של סיבוב:");

Serial.println (xGyro); Serial.print ("ציר סיבוב Y:");

Serial.println (yGyro); Serial.print ("ציר Z של סיבוב:");

Serial.println (zGyro);

עיכוב (500);

}

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

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

ל- BMG160 יש מספר יישומים מגוונים במכשירים כמו טלפונים סלולריים, התקני ממשק מכונה אנושית. מודול חיישן זה תוכנן לעמוד בדרישות ליישומי צרכן כגון ייצוב תמונה (DSC ומצלמת טלפון), משחקים והתקני הצבעה. הוא משמש גם במערכות הדורשות זיהוי מחוות ובמערכות המשמשות בניווט פנימי.

מוּמלָץ: