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

ממשק Arduino Mega עם מודול GPS (Neo-6M): 8 שלבים
ממשק Arduino Mega עם מודול GPS (Neo-6M): 8 שלבים

וִידֵאוֹ: ממשק Arduino Mega עם מודול GPS (Neo-6M): 8 שלבים

וִידֵאוֹ: ממשק Arduino Mega עם מודול GPS (Neo-6M): 8 שלבים
וִידֵאוֹ: Контрольная лампа переменного тока с диммером Arduino AC 2024, יוני
Anonim
ממשק Arduino Mega עם מודול GPS (Neo-6M)
ממשק Arduino Mega עם מודול GPS (Neo-6M)

בפרויקט זה, הראיתי כיצד להתממשק מודול GPS (Neo-6M) עם Arduino Mega. ספריית TinyGPS משמשת להצגת הנתונים של אורך ורוחב ו- TinyGPS ++ משמשת להצגת קווי רוחב, אורך, גובה, מהירות ומספר לוויינים במסך הטורי.

שלב 1: דרושים רכיבים

חוּמרָה

  • Arduino Mega ==> $ 30
  • מודול GPS Neo-6M ==> $ 30

תוֹכנָה

Arduino IDE

העלות הכוללת של הפרויקט היא 60 $

שלב 2: מידע אודות GPS

מהו GPS

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

כיצד פועל GPS

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

כדי לחשב את המיקום הדו-ממדי שלך (קו אורך וקו אורך) ותנועת מסלול, יש לנעול מקלט GPS לאות של לפחות 3 לוויינים. כאשר 4 לווינים או יותר נראים לעין, המקלט יכול לקבוע את המיקום התלת-ממדי שלך (קו רוחב, אורך וגובה). באופן כללי, מקלט GPS עוקב אחר 8 לוויינים או יותר, אך הדבר תלוי בזמן היום ובמקום בו אתה נמצא על פני כדור הארץ. לאחר קביעת המיקום שלך, יחידת ה- GPS יכולה לחשב מידע אחר, כגון

  • מְהִירוּת
  • מֵסַב
  • מַסלוּל
  • נסיעה dist
  • מרחק ליעד

מהו אות

לווייני GPS משדרים לפחות 2 אותות רדיו בעלי הספק נמוך. האותות נוסעים בקו ראייה, כלומר הם יעברו דרך עננים, זכוכית ופלסטיק אך לא יעברו דרך רוב החפצים המוצקים, כמו בניינים והרים. עם זאת, מקלטים מודרניים רגישים יותר ולרוב יכולים לעקוב אחר בתים. אות GPS מכיל 3 סוגי מידע שונים

קוד פסבדוד

זה תעודת זהות קוד המזהה איזה לוויין מעביר מידע. תוכל לראות מאילו לוויינים אתה מקבל אותות בדף הלוויין של המכשיר שלך.

נתוני Ephemeris

יש צורך בנתוני Ephemeris כדי לקבוע את מיקומו של הלוויין ונותנים מידע חשוב על מצב הלוויין, התאריך והשעה הנוכחיים.

נתוני אלמנאך

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

שלב 3: מודול GPS Neo-6M

מודול ה- GPS NEO-6M מוצג באיור שלהלן. הוא מגיע עם אנטנה חיצונית ואינו מגיע עם סיכות כותרת. אז תצטרך להלחם אותו.

סקירה כללית של מודול ה- GPS NEO-6M

שבב GPS NEO-6M

לב המודול הוא שבב GPS NEO-6M מבית u-blox. הוא יכול לעקוב אחר עד 22 לוויינים ב -50 ערוצים ומשיג את הרגישות הגבוהה ביותר של התעשייה כלומר -161 dB מעקב, תוך צריכת זרם אספקה של 45mA בלבד. מנוע המיקום u-blox 6 מתגאה גם ב Time-To-First-Fix (TTFF) של פחות משניה. אחת התכונות הטובות ביותר שהשבב מספק היא מצב חיסכון בחשמל (PSM). היא מאפשרת הפחתה בצריכת החשמל של המערכת על ידי הפעלה וכיבוי של חלקים מהמקלט באופן סלקטיבי. זה מפחית באופן דרמטי את צריכת החשמל של המודול ל -11mA בלבד, מה שהופך אותו מתאים ליישומים רגישים לחשמל כמו שעון יד GPS. סיכות הנתונים הדרושות לשבב ה- GPS NEO-6M מתפרצות לכותרות של 0.1 אינץ '. זה כולל סיכות הדרושות לתקשורת עם מיקרו -בקר באמצעות UART.

הערה:- המודול תומך בקצב שידור מ- 4800bps ל- 230400bps עם שידור ברירת מחדל של 9600.

מחוון LED למיקום תיקון

יש מודול LED במודול ה- GPS NEO-6M המציין את המצב של תיקון מיקום. הוא יהבהב בקצבים שונים בהתאם למצב שהוא נמצא בו

  1. אין מהבהב ==> פירושו שהוא מחפש לוויינים
  2. מהבהב כל 1s - פירושו של תיקון מיקום

וסת LDO 3.3V

מתח ההפעלה של שבב NEO-6M הוא מ 2.7 עד 3.6V. אבל, המודול מגיע עם וויסת 3V3 נשירה נמוכה במיוחד של MIC5205 מבית MICREL. סיכות ההיגיון הן גם בעלות סובלנות של 5 וולט, כך שנוכל לחבר אותה בקלות לבדיקת Arduino או לכל מיקרו 5V לוגי מבלי להשתמש בממיר רמות לוגי.

סוללה ו- EEPROM

המודול מצויד ב- EEPROM סידורי דו -חוטי HK24C32. הוא בגודל 4KB ומחובר לשבב NEO-6M באמצעות I2C. המודול מכיל גם סוללת כפתורים נטענת המשמשת כקבל-על.

EEPROM יחד עם סוללה מסייעים בשמירה על זיכרון ה- RAM המגובה בסוללה (BBR). ה- BBR מכיל נתוני שעון, נתוני מיקום אחרונים (נתוני מסלול GNSS) ותצורת מודולים. אבל זה לא מיועד לאחסון נתונים קבוע.

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

ללא הסוללה ה- GPS תמיד מתחיל להתקרר ולכן נעילת ה- GPS הראשונית לוקחת יותר זמן. הסוללה נטענת אוטומטית כאשר מתח מופעל ושומרת נתונים למשך עד שבועיים ללא חשמל.

Pinout

GND הוא סיכת הקרקע וצריך לחבר אותו לסיכת GND בארדואינו

סיכת TxD (משדר) משמשת לתקשורת טורית

סיכת RxD (מקלט) משמשת לתקשורת טורית

VCC מספקת כוח למודול. אתה יכול לחבר אותו ישירות לסיכה 5V בארדואינו

שלב 4: Arduino Mega

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

ארדואינו מגה

Arduino Mega 2560 הוא לוח מיקרו -בקר המבוסס על Atmega2560.

  • על הלוח משולבים 54 סיכות קלט/פלט דיגיטליות ו -16 סיכות אנלוגיות שהופכות את המכשיר הזה לייחודי ובולט מאחרים. מתוך 54 קלט/פלט דיגיטלי, 15 משמשים ל- PWM (אפנון רוחב הדופק).
  • מתנד קריסטל בתדר 16MHz נוסף על הלוח.
  • הלוח מגיע עם יציאת כבל USB המשמשת לחיבור והעברת קוד מהמחשב ללוח.
  • שקע חשמל DC מצורף ללוח המשמש להפעלת הלוח.
  • הלוח מגיע עם שני ווסת מתח כלומר 5V ו -3.3V המספק את הגמישות לווסת את המתח בהתאם לדרישות.
  • יש כפתור איפוס ו -4 יציאה טורית חומרה בשם USART המייצרת מהירות מרבית להגדרת תקשורת.
  • ישנן שלוש דרכים להפעיל את הלוח. אתה יכול להשתמש בכבל USB כדי להפעיל את הלוח ולהעביר קוד ללוח או שאתה יכול להפעיל אותו באמצעות Vin של הלוח או באמצעות שקע חשמל או בלילה.

מפרטים

Pinout

תיאור סיכה

  • 5V & 3.3V ==> סיכה זו משמשת לספק מתח מוסדר פלט סביב 5V. ספק כוח מוסדר זה מפעיל את הבקר ורכיבים אחרים בלוח. ניתן להשיג אותו מתוך Vin של הלוח או בכבל USB או באספקת מתח 5V מוסדרת אחרת. בעוד ויסות מתח נוסף מסופק על ידי פין 3.3V. ההספק המרבי שהוא יכול לצייר הוא 50mA.
  • GND ==> ישנם 5 סיכות קרקע זמינות על הלוח מה שהופך אותו שימושי כאשר נדרשים יותר מסיכות קרקע אחת לפרויקט.
  • איפוס ==> סיכה זו משמשת לאיפוס הלוח. הגדרת סיכה זו ל- LOW תאפס את הלוח.
  • Vin ==> זהו מתח הכניסה המסופק ללוח אשר נע בין 7V ל 20V. ניתן לגשת למתח המסופק על ידי שקע החשמל באמצעות סיכה זו. עם זאת, מתח המוצא דרך סיכה זו ללוח יוגדר אוטומטית ל- 5V.
  • תקשורת סידרית ==> RXD ו- TXD הם הסיכות הטוריות המשמשות להעברת וקבלה של נתונים סדרתיים כלומר Rx מייצג את העברת הנתונים בעוד Tx משמשת לקבלת נתונים. ישנם ארבעה שילובים של סיכות סדרתיות אלה המשמשות כאשר Serail 0 מכיל RX (0) ו- TX (1), סדרה 1 מכילה TX (18) ו- RX (19), סדרה 2 מכילה TX (16) ו- RX (17), וסדרה 3 מכילה TX (14) ו- RX (15).
  • הפרעות חיצוניות ==> שישה סיכות משמשות ליצירת הפרעות חיצוניות כלומר הפרעה 0 (0), קטע 1 (3), קטע 2 (21), קטע 3 (20), קטע 4 (19), קטע 5 (18). סיכות אלה מייצרות הפרעות במספר דרכים, כלומר מתן ערך נמוך, קצה עולה או יורד או משנה ערך לסיכות ההפרעה.
  • LED ==> לוח זה מגיע עם LED מובנה המחובר לסיכה דיגיטלית 13. ערך גבוה בסיכה זו יפעיל את הנורית וערך LOW יכבה אותו.
  • AREF ==> AREF מייצג מתח הפניה אנלוגי המהווה מתח התייחסות לכניסות אנלוגיות.
  • סיכות אנלוגיות ==> ישנם 16 סיכות אנלוגיות המשולבות על הלוח המסומנות כ- A0 עד A15. חשוב לציין שכל הסיכות האנלוגיות הללו יכולות לשמש כסיכות קלט/פלט דיגיטליות. כל סיכה אנלוגית מגיעה ברזולוציה של 10 סיביות. סיכות אלה יכולות למדוד מהאדמה עד 5V. עם זאת, ניתן לשנות את הערך העליון באמצעות הפונקציה AREF ו- analogReference ().
  • I2C ==> שני סיכות 20 ו -21 תומכות בתקשורת I2C כאשר 20 מייצג SDA (קו נתונים סידורי המשמש בעיקר לאחסון הנתונים) ו- 21 מייצג SCL (קו שעון סידורי המשמש בעיקר לאספקת סנכרון נתונים בין המכשירים)
  • SPI Communication ==> SPI מייצג ממשק היקפי סידורי המשמש להעברת נתונים בין הבקר ורכיבי ציוד היקפי אחר. ארבעה סיכות קרי 50 (MISO), 51 (MOSI), 52 (SCK), 53 (SS) משמשים לתקשורת SPI.

שלב 5: Arduino IDE

כאן אני מניח שכבר התקנת את Arduino IDE.

1. הורד את הספרייה הנדרשת להלן

TinyGPS lib

2. לאחר הורדתו. חלץ אותו והעבר אותו לתיקייה C: / Users \… / Documents / Arduino / libraries ודא שאין (-).

3. פתח את Arduino IDE והעתק את הקוד מקטע התוכנית.

4. לאחר מכן בחר לוח עבור זה עבור אל Tools ==> לוחות ==> בחר לוח כאן אנו משתמשים ב- Arduino Mega 2560

5. לאחר בחירת לוח בחר יציאה עבור זה עבור אל כלים ==> יציאות

6. לאחר בחירת הלוח והיציאה לחץ על העלה.

7. לאחר העלאת הקוד פתח מסוף סדרתי כדי לראות את הפלט.

שלב 6: חיבורים

Arduino MEGA ==> GPS NEO-6M

  • 3.3V ==> VCC
  • GND ==> GND
  • Tx1 (18) ==> Rx
  • Rx (19) ==> Tx

אתה יכול גם להשתמש Serial2 או Serial3 במקום Serial1

מוּמלָץ: