הוספת מודול מצפן למיקרו-בקר Arduino שלך פותחת שורה של אפשרויות לפרויקטים. הנה איך לחבר אחד ולהשתמש בו.
בפרויקטים מודרניים של עשה זאת בעצמך, זה די נפוץ למצוא חיישנים מתקדמים כגון מדי תאוצה ומגנטומטרים הממומשים עם מיקרו-בקרים. אמנם השתמשת בחיישנים האלה בטלפון שלך, אבל קשה לדמיין איך המודולים האלה עובדים, אבל זה פשוט להפתיע.
חיישן מגנומטר מצפן GY-271 מאפשר חישת כיוון עבור יישומים שונים. כאן נחקור את תהליך ההתממשקות של חיישן ה-GY-271 עם מיקרו-בקר Arduino, כיצד לכייל אותו ולהסתכל על הבעיות שאתה עלול להתמודד איתה תוך כדי.
מהו מודול המצפן GY-271?
מודול המצפן GY-271 הוא מגנומטר רגיש במיוחד שיכול למדוד שדות מגנטיים בתלת מימד. הוא משמש לאיתור השדה המגנטי של כדור הארץ ולקבוע את הכיוון או הכיוון של מכשירים ביישומים כמו מערכות ניווט, רובוטיקה ומזל"טים. תחשוב על זה כמו מצפן דיגיטלי מאוד מדויק. חיישן זה מצויד בעיצוב קומפקטי וחזק המקל על התקנה ושימוש במגוון רחב של פרויקטים.
כיצד פועל מודול המצפן GY-271?
מודול המצפן GY-271 HCM5883L מכיל חיישן מגנומטר בעל 3 צירים, המבוסס על טכנולוגיה אנזוטרופית מגנטו-התנגדות (AMR). החיישן מודד את עוצמתו וכיוון השדה המגנטי של כדור הארץ על ידי זיהוי השינויים בהתנגדות של יסודות ה-AMR הפנימיים שלו.
כאשר החיישן נחשף לשדה מגנטי, ההתנגדות של רכיבי ה-AMR משתנה, ויוצרת מתח פרופורציונלי לעוצמתו ולכיוון השדה המגנטי. לאחר מכן, מעבד האותות הדיגיטלי של החיישן ממיר את המתח הזה לאות דיגיטלי, אותו ניתן לקרוא על ידי מיקרו-בקר. על ידי מדידת המתח בכל שלושת הצירים, החיישן יכול לספק קריאות מדויקות ביותר של חוזק וכיוון השדה המגנטי בתלת מימד.
חיבור ה-GY-271 ל-Arduino Uno
חיבור המודול הזה לארדואינו הוא די פשוט. כיסינו גם אחרים מודולי Arduino קלים לשימוש שיכול לעזור להגדיל את הפרויקט שלך בעתיד. למודול GY-271 יש בסך הכל חמישה פינים, כולל VCC, GND, ושלושה פיני אות (SDA, SCL, ו DRDY).
תזדקק לרכיבים הבאים:
- מודול מצפן GY-271 HMC5883L
- Arduino Uno (או דגם אחר)
- חוטי מגשר (זכר לזכר וזכר לנקבה)
- קרש לחם (אופציונלי)
ראשית, חבר את VCC ו GND פינים של מודול GY-271 ל- 5V ו GND סיכות של Arduino Uno, בהתאמה.
לאחר מכן, חבר את SDA ו SCL פינים של המודול ל A4 ו A5 פינים אנלוגיים של Arduino Uno, בהתאמה.
התקנת הספריות הדרושות
לפני שתוכל להתחיל לעבוד עם מודול המצפן GY-271 ו- Arduino, עליך להתקין את הספריות הדרושות כדי לתקשר עם החיישן.
הספרייה הראשונה שאתה צריך לכלול בסקיצה שלך היא ספריית ה-Wire, המשמשת לתקשורת I2C בין ה-Arduino והחיישן. ספריית ה-Wire מגיעה מותקנת מראש עם Arduino IDE, כך שאינך צריך להוריד אותה בנפרד. כדי להתקין את השני, ה HMC5883L ספרייה, תצטרך לבצע את השלבים הבאים:
פתח את Arduino IDE ועבור אל סְקִיצָה > כלול ספרייה > ניהול ספריות.
במנהל הספרייה, חפש את HMC5883L בשורת החיפוש.
בחר את HMC5883L ספריה במיוחד מ- Adafruit. לאחר התקנת הספרייה, תוכל לכלול אותה בסקיצה של Arduino על ידי מעבר אל סְקִיצָה > כלול ספרייה > HMC5883L.
הבנת הקוד
עליך לכתוב תוכנית המאתחלת את החיישן, קוראת את הנתונים שלו ומחשבת את עוצמתו וכיוונו של השדה המגנטי של כדור הארץ. את הקוד המלא ניתן להוריד מהרשמי שלנו מאגר GitHub.
בתחילת הקוד, עליך לכלול את הספריות הדרושות שזה עתה הורדת.
#לִכלוֹל
#לִכלוֹל
#לִכלוֹל
אל תשכח להקצות זיהוי ייחודי לחיישן. השתמש בשורה זו כדי לעשות זאת:
Adafruit_HMC5883_Unified mag = Adafruit_HMC5883_Unified(12345);
בקוד ההגדרה, התחל את הצג הטורי ובדוק אם החיישן מגיב. ניתן להדפיס הודעות לצג כדי לעדכן את מצב החיישן:
בָּטֵללהכין(בָּטֵל)
{
סידורי.התחל(9600);
סידורי.println("בדיקת מגנומטר HMC5883"); סידורי.println("");
/* אתחול החיישן */
אם(!mag.התחל())
{
סידורי.println("אופס, לא זוהה HMC5883... בדוק את החיווט שלך!");
בזמן(1);
}
}
בלולאה, ראשית, קבל אירוע חיישן חדש:
חיישנים_אירוע_t מִקרֶה;
mag.getEvent(&event);
לאחר מכן הצג את קריאות החיישן לצג הטורי. אל תשכח להגדיר את קצב הביאוד ל 9600.
סידורי.הדפס("איקס: "); סידורי.הדפס(event.magnetic.x); סידורי.הדפס(" ");
סידורי.הדפס("Y:"); סידורי.הדפס(event.magnetic.y); סידורי.הדפס(" ");
סידורי.הדפס("Z:"); סידורי.הדפס(event.magnetic.z); סידורי.הדפס(" ");סידורי.println("uT");
החזק את המודול כך ז מצביע "למעלה" ומדוד את הכותרת עם איקס ו י. על ידי כך, תוכל לחשב את הכיוון כאשר המגנומטר ברמה. שורת הקוד הזו עוזרת לזה היא:
לָצוּף כותרת = atan2(event.magnetic.y, event.magnetic.x);
ברגע שיש לך את שלך כּוֹתֶרֶת, לאחר מכן עליך להוסיף את שלך DeclinationAngle, שהיא השגיאה של השדה המגנטי במיקומך.
לָצוּף DeclinationAngle = 0.663;
כותרת += declinationAngle;
אתה יכול למצוא בנוחות את זווית הנטייה של האזור המקומי שלך על אתר מגנטי דקלינציה. אם מסיבה כלשהי אינך יכול למצוא את זווית הדחיה שלך, הערה את שתי השורות מהקוד שלך.
הערה על שתי שורות הקוד עלולה לגרום לקריאות חיישן שגויות. נסה כמיטב יכולתך לכייל את החיישן לפני השימוש.
לבסוף, הדפס את הכותרת לצג הטורי והוסף השהיה להמתנה של חצי שנייה לפני שתקרא שוב.
סידורי.הדפס("כותרת (מעלות):");
סידורי.println(headingDegrees);
לְעַכֵּב(500);
מכאן, תוכל להתאים אישית את הקוד כך שיתאים לצרכי הפרויקט שלך ולהוסיף תכונות נוספות כגון רישום נתונים.
אם אתה מעדיף להשתמש בספריית Adafruit, אנו ממליצים להשיג ממנה מאגר GitHub של Adafruit.
קריאה ופרשנות של נתוני מצפן
נתוני החיישן המוצגים בצג הטורי מציגים את ערכי וקטור השדה המגנטי הנמדד על ידי המגנומטר במיקרו-טסלס (μT) עבור צירי X, Y ו-Z, בהתאמה. ניתן להשתמש בערכים אלה כדי לקבוע את כיוון וגודל השדה המגנטי.
ערך הכיוון המוצג במעלות חשוב אף הוא ומייצג את כיוון הקוטב הצפוני המגנטי ביחס למיקום החיישן. קריאה זו יכולה לשמש בפרויקטים שבהם צריך לקבוע את כיוון האובייקט הנע, כגון ברובוטיקה, ניווט ומערכות מיקום גיאוגרפי.
כיול חיישן
אם כבר התקנת ספרייה אחרת עבור מודול HMC5883L, תצטרך להסיר או למחוק אותה. אחרת, אתה עלול לקבל שגיאות קומפילציה או לראות אזהרות בצג הטורי שלך במהלך הכיול. אנו ממליצים להשתמש הספרייה של ירז'בסקי זמין ב- GitHub מכיוון שיש לו את משאבי הכיול המלאים הדרושים לסעיף זה.
ראשית, הורד את קובץ ה-zip מהמאגר על ידי לחיצה על קוד > הורד את ZIP.
לאחר מכן, פתח את Arduino IDE ולחץ על סְקִיצָה > כלול ספרייה > הוסף ספרייה.
בחר את Arduino-HMC5883 קובץ zip שהורדת זה עתה, וה-Arduino IDE יתקין את הספרייה אוטומטית עבורך.
הפעל את סקיצת הכיול הזמינה במאגר תוך הזזת החיישן על משטח שטוח בעת ההעלאה. הערכים המתקבלים מהצג הטורי הם ערכי ההיסט של החיישן שלך, שבהם תוכל להשתמש כדי לתקן את הקריאות שלך בזמן השימוש במצפן במהלך הפרויקטים שלך.
בעיות שאתה עלול להיתקל בהן
ישנן מספר שגיאות שמישהו עלול להיתקל בהן בעת חיבור מודול המצפן עם Arduino. להלן מספר דוגמאות והפתרונות לעקיפתן:
שגיאות קומפילציה: אלה יכולים להתרחש אם הספריות הדרושות אינן כלולות או אם יש שגיאות תחביר בקוד. כדי לתקן זאת, ודא שהתקנת את הספריות הנכונות ובדוק את הקוד שלך לאיתור שגיאות תחביר. כפי שראינו פעמים רבות, ייתכן שהתקנת בטעות מספר ספריות HCM5883L.
שגיאת קומפילציה: 'Adafruit_HMC5883_Unified' עושה לֹא שם סוג
שגיאות תקשורת: אם אינך מצליח לתקשר עם מודול המצפן, ודא שחיברת אותו לפינים הנכונים ב-Arduino שלך ושהחיווט שלך תקין. ייתכן שתצטרך גם להתאים את כתובת ה-I2C של המודול בקוד שלך אם היא שונה מברירת המחדל - שהיא 0x1E.
שְׁגִיאָה באמצעות hmc5883l/testDevice (קַו246) שגיאה בתקשורת עם חיישן HMC5883L. הערך לקרוא מ-ID_A, ID_B ו ID_C רושמת לַעֲשׂוֹתלֹא להתאים לערכים הצפויים.
הפרעות מגנטיות: אם קריאות המצפן אינן יציבות או משתנות, ייתכן שהדבר נובע מהפרעות מגנטיות של עצמים קרובים. הרחק את המודול מכל מגנטים או מקורות אחרים של הפרעות מגנטיות כדי לקבל קריאות יציבות יותר.
הגדל את הפרויקטים שלך עם מודול המצפן GY-271
היכולת להשתמש במודול המצפן GY-271 HCM5883L פותחת דלת לבניית פרויקטי עשה זאת בעצמך מורכבים יותר באמצעות ארדואינו כגון רוברים מונחי GPS ומזל"טים עשה זאת בעצמך. האפשרויות הן אינסופיות, במיוחד כשמוסיפים חיישנים אחרים.