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

מדידת שדה מגנטי באמצעות HMC5883 ו- Raspberry Pi: 4 שלבים
מדידת שדה מגנטי באמצעות HMC5883 ו- Raspberry Pi: 4 שלבים

וִידֵאוֹ: מדידת שדה מגנטי באמצעות HMC5883 ו- Raspberry Pi: 4 שלבים

וִידֵאוֹ: מדידת שדה מגנטי באמצעות HMC5883 ו- Raspberry Pi: 4 שלבים
וִידֵאוֹ: Leap Motion SDK 2024, נוֹבֶמבֶּר
Anonim
Image
Image

HMC5883 הוא מצפן דיגיטלי המיועד לחישה מגנטית בשדה נמוך. למכשיר זה טווח שדות מגנטי רחב של +/- 8 Oe וקצב פלט של 160 הרץ. חיישן HMC5883 כולל נהגים אוטומטיים של רצועות הפחתה, ביטול קיזוז ו- ADC של 12 סיביות המאפשר דיוק כיוון מצפן של 1 עד 2 מעלות. כל מודולי המיני I²C מיועדים להפעלה ב 5VDC.

במדריך זה אנו הולכים להסביר את העבודה המפורטת של HMC5883 עם פטל פאי והתכנות שלה באמצעות שפת התכנות java.

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

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

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

1. HMC5883

2. פטל פטל

3. כבל I2C

4. מגן I2C עבור פטל פטל

5. כבל אתרנט

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

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

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

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

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

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

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

שלב 3: קוד ג'אווה למדידת עוצמת השדה המגנטי:

קוד ג'אווה למדידת עוצמת השדה המגנטי
קוד ג'אווה למדידת עוצמת השדה המגנטי
קוד ג'אווה למדידת עוצמת השדה המגנטי
קוד ג'אווה למדידת עוצמת השדה המגנטי

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

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

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

pi4j.com/install.html

תוכל להעתיק מכאן גם את קוד ה- Java שעובד עבור חיישן זה:

ייבא com.pi4j.io.i2c. I2CBus;

ייבא com.pi4j.io.i2c. I2CDevice;

mport com.pi4j.io.i2c. I2CFactory;

יבוא java.io. IOException; מעמד ציבורי HMC5883

{

פוסט סטטי ציבורי ריק (String args ) זורק חריגה

{

// צור אוטובוס I2C

אוטובוס I2CBus = I2CFactory.getInstance (I2CBus. BUS_1);

// קבל מכשיר I2C, כתובת I2C HMC5883 היא 0x1E (30)

מכשיר I2CDevice = Bus.getDevice (0x1E);

// בחר רשם תצורה א

// תצורת מדידה רגילה, קצב נתונים o/p = 0.75 הרץ

device.write (0x00, (בייט) 0x60);

// בחר מצב רשום

// מצב מדידה רציף

device.write (0x02, (בייט) 0x00);

Thread.sleep (500);

// קרא 6 בתים של נתונים מ 0x03 (3)

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

בייט נתונים = בייט חדש [6];

device.read (0x03, נתונים, 0, 6);

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

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

אם (xMag> 32767)

{

xMag -= 65536;

}

int zMag = ((נתונים [2] & 0xFF) * 256 + (נתונים [3] & 0xFF));

אם (zMag> 32767)

{

zMag -= 65536;

}

int yMag = ((נתונים [4] & 0xFF) * 256 + (נתונים [5] & 0xFF));

אם (yMag> 32767)

{

yMag -= 65536;

}

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

System.out.printf ("שדה מגנטי בציר X: %d %n", xMag);

System.out.printf ("שדה מגנטי בציר Y: %d %n", yMag);

System.out.printf ("שדה מגנטי בציר Z: %d %n", zMag);

}

}

פונקציות Write () ו- read () משמשות לכתיבת הפקודות ולקריאת פלט החיישן בהתאמה. החלק הבא ממחיש את קריאת ערכי השדה המגנטי.

// קרא 6 בתים של נתונים מ 0x03 (3)

// xMag msb, xMag lsb, zMag msb, zMag lsb, yMag msb, yMag lsb

בייט נתונים = בייט חדש [6];

device.read (0x03, נתונים, 0, 6);

הפלט מוצג בתמונה למעלה.

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

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

HMC5883 הוא מודול רב-שבב בעל הרכבה על פני השטח המיועד לחישה מגנטית בשדה נמוך עם ממשק דיגיטלי ליישומים כגון חישוב נמוך ומגנומטומטריה. רמת הדיוק והדיוק ברמה גבוהה עד שתיים מאפשרת ניווט להולכי רגל ויישומי LBS.

מוּמלָץ: