תוכן עניינים:
2025 מְחַבֵּר: John Day | [email protected]. שונה לאחרונה: 2025-01-23 14:46
בעולם של היום יותר ממחצית מבני הנוער והילדים אוהבים משחק וכל מי שאוהב את זה, מוקסם מההיבטים הטכניים של המשחק, יודע את החשיבות של חישת תנועה בתחום זה. היינו נדהמים מאותו דבר ורק כדי להביא אותו על הלוחות, חשבנו לעבוד על חיישן ג'ירוסקופ שיכול למדוד את קצב הזווית של כל אובייקט. אז, החיישן שלקחנו כדי להתמודד עם המשימה הוא BMG160. BMG160 הוא חיישן ג'ירוסקופ, דיגיטלי, טריאקסיאלי, בעל 16 סיביות שיכול למדוד את קצב הזווית בשלוש ממדי חדר בניצב.
במדריך זה אנו הולכים להדגים את פעולתו של BMG160 עם פטל פאי, תוך שימוש ב- Java כשפת התכנות.
חומרה שתזדקק לה למטרה זו היא כדלקמן:
1. BMG160
2. פטל פטל
3. כבל I2C
4. מגן I2C עבור פטל פטל
5. כבל אתרנט
שלב 1: סקירה כללית של BMG160:
קודם כל ברצוננו להכיר לך את התכונות הבסיסיות של מודול החיישנים שהוא BMG160 ואת פרוטוקול התקשורת שעליו הוא פועל.
BMG160 הוא בעצם חיישן ג'ירוסקופ, 16 סיביות, דיגיטאלי, טריאקסיאלי, שיכול למדוד קצבי זווית. הוא מסוגל לחשב קצבי זווית בשלושה ממדי חדר בניצב, ציר x-, y- ו- z, ולספק את אותות הפלט המתאימים. הוא יכול לתקשר עם לוח הפטל פטל באמצעות פרוטוקול התקשורת I2C. מודול ספציפי זה מיועד לענות על דרישות ליישומי צריכה וכן למטרות תעשייתיות.
פרוטוקול התקשורת שעליו החיישן עובד הוא I2C. I2C מייצג את המעגל הבין-משולב. זהו פרוטוקול תקשורת שבו התקשורת מתבצעת באמצעות קווי SDA (נתונים סדרתיים) ו- SCL (שעון טורי). הוא מאפשר חיבור של מספר מכשירים בו זמנית. זהו אחד מפרוטוקול התקשורת הפשוט והיעיל ביותר.
שלב 2: מה שאתה צריך..
החומרים הדרושים לנו להגשמת מטרתנו כוללים את רכיבי החומרה הבאים:
1. BMG160
2. פטל פטל
3. כבל I2C
4. מגן I2C עבור פטל פטל
5. כבל אתרנט
שלב 3: חיבור חומרה:
קטע חיבור החומרה בעצם מסביר את חיבורי החיווט הנדרשים בין החיישן לבין פטל הפטל. הבטחת חיבורים נכונים היא ההכרח הבסיסי בעת עבודה על כל מערכת לתפוקה הרצויה. אז, החיבורים הנדרשים הם כדלקמן:
ה- BMG160 יעבוד על I2C. להלן תרשים החיווט לדוגמה, המדגים כיצד לחבר כל ממשק של החיישן.
הלוח מחוץ לקופסה מוגדר לממשק I2C, ולכן אנו ממליצים להשתמש בחיבור זה אם אתה אגנוסטי אחרת. כל מה שאתה צריך זה ארבעה חוטים!
רק ארבעה חיבורים נדרשים סיכות Vcc, Gnd, SCL ו- SDA ואלו מחוברים בעזרת כבל I2C.
קשרים אלה מודגמים בתמונות למעלה.
שלב 4: מדידת גירוסקופ תלת ציר באמצעות קוד ג'אווה:
היתרון בשימוש בפטל פאי הוא בכך שהוא מספק לך את הגמישות של שפת התכנות בה ברצונך לתכנת את הלוח על מנת לחבר אליו את החיישן. תוך ניצול היתרון הזה של הלוח הזה, אנו מדגימים כאן את התכנות שלו ב- Java. ניתן להוריד את קוד ה- Java עבור BMG160 מקהילת github שלנו, שהיא קהילת Dcube Store.
בנוסף לנוחות המשתמשים, אנו מסבירים את הקוד גם כאן: כשלב הראשון של קידוד עליך להוריד את ספריית pi4j במקרה של java, מכיוון שספרייה זו תומכת בפונקציות המשמשות את הקוד. אז, כדי להוריד את הספרייה אתה יכול לבקר בקישור הבא:
pi4j.com/install.html
תוכל להעתיק מכאן גם את קוד ה- Java שעובד עבור חיישן זה:
ייבא com.pi4j.io.i2c. I2CBus;
ייבא com.pi4j.io.i2c. I2CDevice;
יבוא com.pi4j.io.i2c. I2CFactory;
יבוא java.io. IOException;
מחלקה ציבורית BMG160
{
פוסט סטטי ציבורי ריק (String args ) זורק חריגה
{
// צור אוטובוס I2C
אוטובוס I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);
// קבל מכשיר I2C, כתובת BMG160 I2C היא 0x68 (104)
מכשיר I2CDevice = bus.getDevice (0x68);
// בחר רישום טווח
// הגדר טווח בקנה מידה מלא, 2000 dps
device.write (0x0F, (בייט) 0x80);
// בחר מרשם רוחב פס
// רוחב פס 200 הרץ
device.write (0x10, (בייט) 0x04);
Thread.sleep (500);
// קרא 6 בתים של נתונים
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb
בייט נתונים = בייט חדש [6];
device.read (0x02, נתונים, 0, 6);
// המרת נתונים
int xGyro = ((נתונים [1] & 0xFF) * 256 + (נתונים [0] & 0xFF));
אם (xGyro> 32767)
{
xGyro -= 65536;
}
int yGyro = ((נתונים [3] & 0xFF) * 256 + (נתונים [2] & 0xFF));
אם (yGyro> 32767)
{
yGyro -= 65536;
}
int zGyro = ((נתונים [5] & 0xFF) * 256 + (נתונים [4] & 0xFF));
אם (zGyro> 32767)
{
zGyro -= 65536;
}
// נתוני פלט למסך
System.out.printf ("ציר סיבוב X: %d %n", xGyro);
System.out.printf ("ציר סיבוב Y: %d %n", yGyro);
System.out.printf ("ציר סיבוב Z: %d %n", zGyro);
}
}
הספרייה המאפשרת תקשורת i2c בין החיישן ללוח היא pi4j, החבילות השונות שלה I2CBus, I2CDevice ו- I2CFactory עוזרות ביצירת החיבור.
יבוא com.pi4j.io.i2c. I2CBus; יבוא com.pi4j.io.i2c. I2CDevice; יבוא com.pi4j.io.i2c. I2CFactory; יבוא java.io. IOException;
חלק זה של הקוד גורם לחיישן למדוד את קצב הזווית על ידי כתיבת הפקודות המתאימות באמצעות הפונקציה write () ולאחר מכן הנתונים נקראים באמצעות הפונקציה read ().
// בחר טווח רישום // הגדר טווח בקנה מידה מלא, device.write 2000 dps (0x0F, (byte) 0x80); // בחר מרשם רוחב הפס // רוחב פס 200 הרץ device.write (0x10, (בייט) 0x04); Thread.sleep (500);
// קרא 6 בתים של נתונים
// xGyro lsb, xGyro msb, yGyro lsb, yGyro msb, zGyro lsb, zGyro msb byte data = new byte [6]; device.read (0x02, נתונים, 0, 6);
הנתונים המתקבלים מהחיישן מומרים לפורמט המתאים באמצעות הדברים הבאים:
int xGyro = ((נתונים [1] & 0xFF) * 256 + (נתונים [0] & 0xFF)); אם (xGyro> 32767) {xGyro -= 65536; } int yGyro = ((נתונים [3] & 0xFF) * 256 + (נתונים [2] & 0xFF)); אם (yGyro> 32767) {yGyro -= 65536; } int zGyro = ((נתונים [5] & 0xFF) * 256 + (נתונים [4] & 0xFF)); אם (zGyro> 32767) {zGyro -= 65536; }
הפלט מודפס באמצעות הפונקציה System.out.println (), בפורמט הבא.
System.out.println ("ציר X של סיבוב: %d %n", xGyro); System.out.println ("ציר סיבוב Y: %d %n", yGyro); System.out.println ("ציר סיבוב Z: %d %n", zGyro);
פלט החיישן מוצג בתמונה למעלה.
שלב 5: יישומים:
ל- BMG160 יש מספר יישומים מגוונים במכשירים כמו טלפונים סלולריים, התקני ממשק מכונה אנושית. מודול חיישן זה תוכנן לעמוד בדרישות ליישומי צרכן כגון ייצוב תמונה (DSC ומצלמת טלפון), משחקים והתקני הצבעה. הוא משמש גם במערכות הדורשות זיהוי מחוות ובמערכות המשמשות בניווט פנימי.
מוּמלָץ:
מודול GPS ממשק עם פטל פטל: 10 שלבים
מודול GPS ממשק עם פטל פאי: היי חבר'ה !! האם אתה רוצה ממשק מודול GPS עם פטל פטל? אבל מתמודד עם קושי כלשהו לעשות את זה? "אל תדאג, אני כאן כדי לעזור לך! אתה יכול להתחיל להשתמש בחלקים הבאים:
תחילת העבודה עם ממשק חיישן I2C ?? - ממשק MMA8451 שלך באמצעות ESP32s: 8 שלבים
תחילת העבודה עם ממשק חיישן I2C ?? - ממשק ה- MMA8451 שלך באמצעות ESP32s: במדריך זה, תלמד הכל על איך להתחיל, להתחבר ולהשיג מכשיר I2C (מאיץ) שעובד עם בקר (Arduino, ESP32, ESP8266, ESP12 NodeMCU)
פטל פאי - HIH6130 I2C חיישן לחות וטמפרטורה חיישן פייתון הדרכה: 4 שלבים
Raspberry Pi - HIH6130 I2C חיישן לחות וטמפרטורה Python הדרכה: HIH6130 הוא חיישן לחות וטמפרטורה עם פלט דיגיטלי. חיישנים אלה מספקים רמת דיוק של ± 4% לחות יחסית. עם יציבות ארוכת טווח מובילה בתעשייה, I2C דיגיטלי פיצוי טמפרטורה אמיתי, אמינות מובילה בתעשייה, יעילות אנרגטית
ממשק LCD 16x2 עם פטל פטל: 7 שלבים
ממשק LCD 16x2 עם Raspberry Pi: שלום חברים, היום אני מציג תצוגת 16x2 ל- Raspberry pi
Arduino Nano ו- Visuino: המרת האצה לזווית ממד תאוצה וג'ירוסקופ MPU6050 I2C חיישן: 8 שלבים (עם תמונות)
Arduino Nano ו- Visuino: המר האצה לזווית ממד תאוצה וג'ירוסקופ MPU6050 I2C חיישן: לפני זמן מה פרסמתי הדרכה כיצד ניתן לחבר MPU9250 תאוצה, גירוסקופ וחיישן מצפן ל- Arduino Nano ולתכנת אותו עם Visuino כדי לשלוח נתוני מנות ולהציג זה על היקף וכלי ויזואלי. מד התאוצה שולח X, Y