آیا تا به حال به فکر موقعیت یابی با آردوینو افتادهاید؟؟؟ اگر این فکر به سرتان زده است، پس حتما باید با ماژول GPS ublox NEO-6M و نحوه راه اندازی آن با آردوینو آشنا شوید.
این ماژول موقعیت یاب، میتواند تا 22 ماهواره را دنبال کند و هر محلی در هر نقطهای از کره زمین را مشخص نماید. این ماژول حتی میتواند برای هر کسی که بخواهد به دنیای جی پی اس وارد شود، یک نقطه شروع عالی باشد.
این ماژولها با توان پایین کار میکنند و برای دستگاههایی که با باتری تغذیه میشوند، مناسب هستند. به علاوه، ارزانند و بهراحتی میتوان با آنها ارتباط برقرار کرد. در ضمن، در بین کسانی که به دنبال سرگرمی هستند، خیلی خیلی محبوبند.
اگر با GPS آشنایی زیادی ندارید، حتما بخش بعدی را در ابتدا مطالعه کنید.
جی پی اس چگونه کار میکند؟
در حقیقت گیرندههای جی پی اس با تشخیص فاصلهی خود از تعدادی ماهواره کار میکنند. این گیرندهها از قبل برنامهریزی میشوند تا بدانند ماهوارههای جی پی اس در هر زمان، کجا هستند.
ماهوارهها اطلاعات مربوط به موقعیت و زمان جاری خود را در قالب سیگنالهای رادیویی به زمین ارسال میکنند. این سیگنالها، ماهوارهها را شناسایی میکنند و به گیرنده مکان خود را اطلاع میدهند.
پس از ارسال سیگنال توسط ماهواره، گیرنده با محاسبه مدت زمانیکه طول کشیده تا سیگنالها را دریافت کند، فاصلهی خود را از هر ماهواره محاسبه میکند. به محض اینکه گیرنده، اطلاعات مربوط به فاصلهی حداقل 3 ماهواره و موقعیت آنها را در فضا پیدا کرد، میتواند مکان شما را روی زمین مشخص کند.
به این فرآیند، سهگانهسازی (Trilateration) میگویند.
نگاهی به مشخصات سخت افزاری ماژول GPS ublox NEO-6M
در این بخش تمامی اجزای ماژول موقعیت یاب ublox NEO-6M را همراه شما بررسی خواهیم کرد.
تراشه ی جی پی اس NEO-6M
در قلب ماژول، یک تراشهی جی پی اس NEO-6M که محصول شرکت u-blox است، وجود دارد. اگر این تراشه را از نزدیک ببیند، متوجه میشوید که اندازهی آن کمتر از اندازهی یک مُهر است، اما با برخلاف ابعاد کوچکش، ویژگیهای اعجابانگیزی بسیاری دارد.
در ادامه، این ویژگیهای اعجاب انگیز را برای شما جمعآوری کردهایم.
ماژول GPS ublox NEO-6M میتواند تا 22 ماهواره را بر روی 50 کانال دنبال کند و به بالاترین سطح حساسیت در این صنعت دست پیدا کند. به عبارت دیگر تنها با مصرف 45 میلیآمپر جریان تغذیه میتواند حساسیت 161- دسی بل را ارائه کند.
بر خلاف سایر ماژولهای جی پی اس، این ماژول میتواند در هر ثانیه 5 بار، موقعیت را با دقت افقی 2.5 متر بهروزرسانی کند. همچنین موتور مکان یابی u-blox 6، دارای TTFF (زمان لازم برای تثبیت اولیه یا Time to First Fix) کمتر از یک ثانیه است.
یکی از بهترین ویژگیهای این تراشه حالت ذخیره انرژی (PSM) آن میباشد. این ویژگی با روشن یا خاموش کردن حساب شدهی بخشهای مختلف گیرنده، باعث کاهش توان مصرفی سیستم میشود. به گونهای که توان مصرفی ماژول را بهطور خارقالعادهای تا 11 میلیآمپر کاهش میدهد و آن را برای کاربردهایی که کم مصرف بودن اولویت دارد (مانند جی پی اس های مچی)، مناسب میسازد.
پایههای دادهی لازم تراشهی جی پی اس NEO-6M از طریق پین هدر استاندارد 0.1 اینچ در دسترس قرار گرفتهاند که شامل پایههای لازم برای برقراری ارتباط با یک میکروکنترلر از طریق UART میباشد. این ماژول بادریتهای 4800bps تا 230400bps را پشتیبانی میکند و بادریت پیش فرض آن 9600bps است.
مشخصات کامل چیپ را میتوانید در جدول زیر مشاهده کنید:
نوع گیرنده | 50 channels, GPS L1(1575.42Mhz) |
دقت افقی مکان یابی | 2.5m |
نرخ بهروزرسانی موقعیت | 1HZ (5Hz maximum) |
زمان دریافت داده | Cool start: 27sHot start: 1s |
حساسیت مکان یابی | 161dBm- |
پروتکل ارتباطی | NMEA, UBX Binary, RTCM |
باد ریت سریال | 4800-230400 (default 9600) |
دمای کاری | -40°C ~ 85°C |
ولتاژ کاری | 2.7V ~ 3.6V |
جریان کاری | 45mA |
آمپدانس TXD/RXD | 510Ω |
LED نشانگر تثبیت موقعیت
بر روی ماژول موقعیت یاب GPS ublox NEO-6M ، یک LED وجود دارد که وضعیت تثبیت موقعیت را نشان میدهد. این LED بسته به حالتی که در آن قرار گرفته با نرخهای متعددی چشمک میزند:
- حالت بدون چشمک زدن: در این حالت ماژول در حال شناسایی ماهوارهها است.
- حالت چشمک زن با فرکانس 1 هرتز: در این حالت، موقعیت تثبیت شده پیدا شده است. (به عبارت دیگر ماژول به تعداد کافی، ماهواره شناسایی کرده است.)
رگولاتور 3.3v LDO
ولتاژ کاری تراشهی NEO-6M از 2.7 ولت تا 3.6 ولت میباشد. اما خبر خوبی که میتوانیم به شما دهیم این است که این ماژول موقعیت یاب دارای یک رگولاتور MIC5205 با ولتاژ خروجی 3.3 ولت با افت ولتاژ بسیار کم است و محصول شرکت MICREL میباشد. علاوه بر این، پایههای منطقی ماژول، تحمل ولتاژ 5 ولت را دارند. بنابراین، میتوانیم بهراحتی بدون استفاده از هیچ گونه تغییر سطح ولتاژ، این ماژول را به آردوینو یا هر میکروکنترلر 5 ولتی متصل کنیم.
باتری و حافظهی EEPROM
حافظه این ماژول از یک EEPROM دو سیمه سریال HK24C32 تامین میشود. اندازهی این حافظه 4 کیلوبایت است و با پروتکل I2C به تراشهی NEO-6M متصل شده است. همچنین شامل یک باتری سکهای با قابلیت شارژ مجدد میباشد که همانند یک ابرخازن عمل میکند.
یک حافظهی EEPROM همراه یک باتری، به حفظ محتوای حافظه BBR کمک میکند. BBR شامل دادههای زمان، آخرین موقعیت (مدار GNSS) و چیدمان ماژول است. با این حال، برای ذخیره سازی دائمی مورد استفاده قرار نمیگیرد.
در صورت حفظ زمان و آخرین موقعیت توسط باتری، TTFF ماژول، بهطور قابل توجهی به یک ثانیه کاهش پیدا میکند. این ویژگی امکان تثبیت سریعتر موقعیت را فراهم میسازد.
اگر جی پی اس از باتری استفاده نکند، همواره بهصورت cold-start شروع به کار میکند و به همین دلیل، تثبیت اولیهی جی پی اس زمان بیشتری میبرد.
هنگامیکه تغذیه به ماژول اعمال شود، باتری بهطور خودکار شارژ میشود. این ماژول میتواند اطلاعات خود را تا 2 هفته بدون نیاز به تغذیه حفظ کند.
آنتن
برای اینکه بتوانید از ماژول برای هر شکلی از برقراری ارتباط بیسیم استفاده کنید، به آنتن نیاز خواهد داشت. به همین منظور، این ماژول، یک آنتن patch با حساسیت 161- دسی بل دارد که شما میتوانید آن را در کانکتور U.FL روی ماژول، محکم کنید.
استفاده از آنتن patch برای اکثر پروژهها عالی است، اما اگر میخواهید حساسیت بیشتری برای ماژول خود بهدست آورید یا آن را در یک محفظهی فلزی بگذارید، میتوانید هر آنتن 3 ولت اکتیو جی پی اس دیگری را هم از طریق کانکتور U.FL به برد متصل کنید.
توصیه:
کانکتورهای U.FL، کوچک و ظریف هستند و نسبت به کشش مقاوم نیستند. برای جلوگیری از آسیب به کانکتور U.FL، به شما توصیه میکنیم که کابل U.FL را از طریق یکی از حفرههای ایجاد شده در کنارههای ماژول عبور داده و سپس، کانکتورهای U.FL را متصل کنید.
پایههای ماژول جی پی اس NEO-6M
ماژول NEO-6M GPS در کل چهار پایه دارد که آن را با دنیای خارج مرتبط میکند. این پایهها به شرح زیر هستند:
GND: پایه زمین است و باید به پایه GND برد آردوینو متصل شود.
TxD (فرستنده): از این پایه برای ارتباط سریال استفاده میشود.
RxD (گیرنده): از این پایه برای ارتباط سریال استفاده میشود.
VCC: تغذیه ماژول را تامین میکند. شما میتوانید آن را بهصورت مستقیم به 5 ولت روی آردوینو متصل کنید.
سیمکشی – راه اندازی ماژول GPS ublox NEO-6M با آردوینو
برای راه اندازی ماژول GPS ublox NEO-6M با آردوینو ، باید با اتصلات شروع کنیم. اما به قطعات زیر نیاز خواهید داشت:
در ابتدا، آنتن patch را به کانکتور U.FL متصل کنید. فراموش نکنید که کابل U.FL را از درون یکی از حفرههای ایجاد شده در کنارههای ماژول بهمنظور ایجاد اتصالی مستحکم عبور دهید.
معمولا پین هدرهای این ماژول لحیم نشدهاند. بنابراین، شما باید آنها را لحیم کنید.
از آنجاییکه از ارتباط سریال نرمافزاری برای فرمان دادن به ماژول استفاده خواهیم کرد، پایههای Tx و Rx روی ماژول را به ترتیب به پایههای 2 و 3 روی آردوینو متصل کنید.
سپس، پایه VCC را به پایه 5V و پایه GND را به زمین برد آردوینو متصل کنید.
پس از انجام این اتصالات، مدار شما آماده است!
آردوینو و خواندن دادهی جی پی اس
مهمترین نکته مثبت در رابطه با گیرندههای GPS این است که به محض اینکه شما آنها را روشن میکنید، بدون نیاز به انجام تنظیمات یا ارسال فرمان، به سرعت شروع به ارسال داده میکنند. بهترین راه برای بررسی این دادهها، استفاده از آردوینو به عنوان مبدل USB به TTL است. برنامهی زیر این کار را انجام میدهد.
#include <SoftwareSerial.h>
// Choose two Arduino pins to use for software serial
int RXPin = 2;
int TXPin = 3;
//Default baud of NEO-6M is 9600
int GPSBaud = 9600;
// Create a software serial port called "gpsSerial"
SoftwareSerial gpsSerial(RXPin, TXPin);
void setup()
{
// Start the Arduino hardware serial port at 9600 baud
Serial.begin(9600);
// Start the software serial port at the GPS's default baud
gpsSerial.begin(GPSBaud);
}
void loop()
{
// Displays information when new sentence is available.
while (gpsSerial.available() > 0)
Serial.write(gpsSerial.read());
}
برنامه را آپلود کنید و سریال مانیتور IDE آردوینو را باز کنید. فراموش نکنید که بادریت را روی 9600bps تنظیم نمایید.
باید متنی شبیه متن زیر را مشاهده کنید:
در واقع اطلاعاتی که شما از طریق رابط سریال، در حال دریافت آن هستید، sentence-NMEAها هستند.
NMEA مخفف National-Marine-Electronics-Association میباشد که یک قالب استاندارد پیام برای همهی گیرندههای جی پی اس است.
استاندارد NMEA در خطوط دادهای به نام sentence شکل میگیرد. هر sentence با کاراکتر کاما، جدا میشود تا تفسیر آن برای کامپیوترها و میکروکنترلرها سادهتر شود.
این sentence-NMEAها با سرعتی به نام << نرخ بهروزرسانی >> ارسال میشوند.
ماژول جی پی اس ublox NEO-6M ، دادههای خود را با نرخ پیش فرض یکبار در ثانیه (فرکانس 1 هرتز) بهروزرسانی میکند. با این حال، شما میتوانید آن را تا نرخ 5 هرتز افزایش دهید.
تفسیر sentence–NMEAها
Sentenceهای زیادی در استاندارد NMEA وجود دارد که رایجترین آنها عبارتند از:
- :GPRMC زمان، تاریخ، عرض جغرافیایی، طول جغرافیایی، ارتفاع از سطح دریا و سرعت تخمینی را ارائه میکند.
- GPGGA: دادهی لازم و تثبیت شده برای موقعیت سه بعدی و دقت داده را نشان میدهد.
بیایید یک مثال از GPRMC-NMEA-sentence را از یک گیرندهی جی پی اس باهم بررسی کنیم.
$GPRMC, 123519, A, 4807.038, N, 01131.000, E,022.4, 084.4, 230394, 003.1, W*6A
شروع NMEA – sentence | $ |
سیستم دادهی عمومی تثبیت شدهی موقعیت یابی | Global Positioning System Fix Data |
زمان جاری در UTC 12:35:19 | 123519 |
A حالت فعال یا V حالت بی اثر | A |
عرض جغرافیایی 48deg 07.038′ N | 4807.038N |
طول جغرافیایی 11deg 31.000′ E | 01131.000E |
سرعت روی زمین با یکای knot | 022.4 |
زاویه دنبال کردن یکای درجه | 084.4 |
تاریخ جاری: 22 مارس 2018 | 220318 |
تغییرات مغناطیسی | 003.1W |
دادهی تشخیص صحت | 6A* |
حال بیایید یک مثال از NMEA-sentence-GPGGA را بررسی کنیم.
$GPGGA, 123519, 4807.038, N, 01131.000, E, 1, 08, 0.9, 545.4, M, 46.9, M, , *47
شروع NMEA – sentence | $ |
سیستم دادهی عمومی تثبیت شدهی موقعیت یابی | Global Positioning System Fix Data |
زمان جاری در UTC 12:35:19 | 123519 |
عرض جغرافیایی 48deg 07.038′ N | 4807.038N |
طول جغرافیایی 11deg 31.000′ E | 01131.000E |
تثبیت جی پی اس | 1 |
تعداد ماهوارههایی که دنبال میشوند | 08 |
تضعیف افقی موقعیت | 0.9 |
فاصله از سطح دریا با یکای متر | 545.4M |
میانیگین ارتفاع از سطح دریا | 46.9M |
زمان سپری شده از آخرین بهروزرسانی DGPS | خالی |
شماره ID ایستگاه DGPS | خالی |
داده تشخیص صحت | 47* |
کد آردوینو و کتابخانه TinyGPS برای راه اندازی ماژول GPS ublox NEO-6M
اغلب اوقات برای پروژهها، به تفسیر sentence-NMEA یک دادهی مفید نیاز داریم. برای اینکه کارمان سادهتر شود، از کتابخانهی ++TinyGPS استفاده میکنیم.
این کتابخانه، بسیاری از عملیاتهای سنگین که برای دریافت داده از ماژولهای جی پی اس لازم است، مانند خواندن و استخراج اطلاعات را انجام میدهد. بنابراین، نیازی نیست با فرایند تفسیر دادهها درگیر شوید.
ابتدا با رفتن به GitHub repo کتابخانه را دانلود کنید یا اینکه بر روی لینک زیر کلیک کنید و کتابخانه را دریافت نمایید:
اما برای نصب این کتابخانه، برنامهی آردوینو را باز کنید و از قسمت file، به مسیر زیر بروید.
Sketch > Include Library > Add .ZIP Library
بعد از اینکه این مسیر را طی کردید، فایل زیپ TinyGPSPlus را که کمی قبلتر دانلود کردید، انتخاب کنید.
وقتی کتابخانه را نصب کردید، میتوانید کد زیر را در نرمافزار آردوینو خود کپی کنید.
کد زیر اطلاعات موقعیت (شامل عرض و طول جغرافیایی و ارتفاع از سطح دریا) و زمان بین المللی UTC (شامل تاریخ و ساعت) را روی سریال مانیتور نشان میدهد.
وقتی کد زیر را در آردوینو آپلود کردید، بخش بعدی را مطالعه کنید. در بخش بعدی، این کد را بهطور کامل برای شما بررسی خواهیم کرد.
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
// Choose two Arduino pins to use for software serial
int RXPin = 2;
int TXPin = 3;
int GPSBaud = 9600;
// Create a TinyGPS++ object
TinyGPSPlus gps;
// Create a software serial port called "gpsSerial"
SoftwareSerial gpsSerial(RXPin, TXPin);
void setup()
{
// Start the Arduino hardware serial port at 9600 baud
Serial.begin(9600);
// Start the software serial port at the GPS's default baud
gpsSerial.begin(GPSBaud);
}
void loop()
{
// This sketch displays information every time a new sentence is correctly encoded.
while (gpsSerial.available() > 0)
if (gps.encode(gpsSerial.read()))
displayInfo();
// If 5000 milliseconds pass and there are no characters coming in
// over the software serial port, show a "No GPS detected" error
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println("No GPS detected");
while(true);
}
}
void displayInfo()
{
if (gps.location.isValid())
{
Serial.print("Latitude: ");
Serial.println(gps.location.lat(), 6);
Serial.print("Longitude: ");
Serial.println(gps.location.lng(), 6);
Serial.print("Altitude: ");
Serial.println(gps.altitude.meters());
}
else
{
Serial.println("Location: Not Available");
}
Serial.print("Date: ");
if (gps.date.isValid())
{
Serial.print(gps.date.month());
Serial.print("/");
Serial.print(gps.date.day());
Serial.print("/");
Serial.println(gps.date.year());
}
else
{
Serial.println("Not Available");
}
Serial.print("Time: ");
if (gps.time.isValid())
{
if (gps.time.hour() < 10) Serial.print(F("0"));
Serial.print(gps.time.hour());
Serial.print(":");
if (gps.time.minute() < 10) Serial.print(F("0"));
Serial.print(gps.time.minute());
Serial.print(":");
if (gps.time.second() < 10) Serial.print(F("0"));
Serial.print(gps.time.second());
Serial.print(".");
if (gps.time.centisecond() < 10) Serial.print(F("0"));
Serial.println(gps.time.centisecond());
}
else
{
Serial.println("Not Available");
}
Serial.println();
Serial.println();
delay(1000);
}
در تصویر زیر میتوانید نتیجهی کد بالا را روی سریال مانیتور ببینید.
شرح قسمتهای مختلف کد:
و اما توضیحات کدی که در آردوینو آپلود کردیم.
همانطور که مشخص است کد با include کردن کتابخانهی ++TinyGPS و کتابخانهی ارتباط سریال نرمافزاری شروع میشود.
پس از این کار، ما پایههای آردوینو را که به ماژول متصل هستند، تعریف میکنیم. علاوه بر این، متغیری را تعریف میکنیم که مقدار پیش فرض بادریت جی پی اس را در خود ذخیره دارد.
در ادامه، ساختن شیء TinyGPSPlus به ما کمک میکند تا به توابع خاصی که مرتبط به کتابخانهی ++TinyGPS هستند، دسترسی داشته باشیم.
در مرحله بعد، یک پورت سریال نرمافزاری به نام gpsSerial میسازیم که از طریق آن با ماژول ارتباط برقرار کنیم.
#include <TinyGPS++.h>
#include <SoftwareSerial.h>
int RXPin = 2;
int TXPin = 3;
int GPSBaud = 9600;
TinyGPSPlus gps;
SoftwareSerial gpsSerial(RXPin, TXPin);
در تابع
، باید ارتباط سریال میان کامپیوتر و ماژول جی پی اس را تنظیم و شروع کنیم.setup
void setup()
{
Serial.begin(9600);
gpsSerial.begin(GPSBaud);
}
در تابع ،
تابع ()displayInfo را صدا میزنیم که اطلاعات مربوط به موقعیت (شامل طول و عرض جغرافیایی و ارتفاع از سطح دریا) و زمان بینالمللی UTC (شامل تاریخ و ساعت) را روی سریال مانیتور نمایش میدهد. در واقع هر موقع که اطلاعات نمایش داده میشود، یک NMEA-Sentence جدید بهطور صحیح کدگذاری میشود. اگر 5000 میلی ثانیه بگذرد و هیچ کاراکتری روی پورت سریال نرمافزاری دریافت نشود، خطای “No GPS detected” را نمایش میدهیم.loop
void loop()
{
while (gpsSerial.available() > 0)
if (gps.encode(gpsSerial.read()))
displayInfo();
if (millis() > 5000 && gps.charsProcessed() < 10)
{
Serial.println(F("No GPS detected"));
while(true);
}
}
توابع کاربردی دیگر در کتابخانهی ++TinyGPS
تعدادی توابع کاربردی وجود دارند که شما میتوانید با شیء ++TinyGPS از آنها استفاده کنید. که برخی از آنها در زیر لیست شدهاند:
- ()gps.speed.value : این تابع، سرعت حرکت روی زمین را بر حسب صدم knot برمیگرداند.
- ()gps.course.value : این تابع، جهت حرکت روی زمین را بر حسب صدم درجه برمیگرداند.
- ()gps.satellites.value : این تابع، تعداد ماهوارههای قابل مشاهدهای را که در تشخیص موقعیت شرکت میکنند، برمیگرداند.
- ()gps.hdop.value : این تابع، میزان کاهش دقت افقی را برمیگرداند.
- اگر میخواهید مدت زمانی را که از انتشار یک داده گذشته است بدانید، متد ()age را فراخوانی کنید. این تابع مدت زمانی (برحسب میلی ثانیه) را که از آخرین بهروزرسانی یک داده گذشته است، برمیگرداند. اگر این تابع مقداری بیشتر از 1500 برگرداند، ممکن است نشانه وجود مشکلی مانند عدم تثبیت باشد.
- اگر می خواهید اطلاعات هر NMEA-Sentence دیگری را استخراج کنید، میتوانید با ارائهی نام و شمارهی Sentence مورد نظرتان به ++TinyGPS از عملکرد مخصوص استخراج این کتابخانه استفاده کنید. روش این کار به صورت زیر میباشد:
TinyGPSCustom magneticVariation(gps, “GPRMC”, 10)
در ضمن، شما میتوانید مانند بقیه توابع اطلاعات موردنظر خود را درخواست کنید:
()magneticVariation.value
نرم افزار U-center
نرمافزار U-center که از شرکت u-blox است، ابزاری قدرتمند برای سنجش، تحلیل عملکرد و کانفیگ کردن گیرندههای جی پی اس u-blox از جمله NEO-6M میباشد. با اینکه این نرمافزار رایگان است، اما تنها برای سیستمعامل ویندوز در دسترس قرار گرفته است.
این نرمافزار میتواند اطلاعات لحظهای طبقهبندی شده و نمای گرافیکی به دست آمده از هر گیرندهی جی پی اس را نمایش دهد. برخی از این گیرندهها عبارتاند از:
- نمای مختصر از ماهواره
- نمای مختصر از موقعیتیابی
- قطب نما، سرعت سنج، ارتفاع سنج
- نموداری از هر دو متغیر مورد نظر
- ذخیره سازی داده و عملکرد بازیابی
نرم افزار U-center از شرکت U-blox را میتوانید از سایت همین شرکت دانلود کنید.
اتصال ماژول ublox NEO-6M به U-center
برای اینکه از نرمافزار U-center استفاده کنید باید با استفاده از مبدل USB به TTL، ماژول ublox NEO-6M خود را به کامپیوتر متصل کنید.
تصویر زیر ماژول متصل شده به کامپیوتر توسط مبدل USB به TTL PL2303 را نشان میدهد.
استفاده از نرم افزار U-center
بعد از نصب موفق نرم افزار، میتوانید آن را از مسیر Start Menu (All Programs -> u-blox-> u-center -> u-center) اجرا کنید و صفحه آغازین آن را به شکل زیر ببینید.
نوار ابزار communication را در برنامه پیدا کنید و بر روی فلش کنار آیکون کلیک کنید. این کار، یک لیست از تمام پورتهای COM قابل دسترسی را نمایش میدهد. پورت متناظر با جایی را که گیرنده متصل شده است، انتخاب کنید.
گزینهی NMEA-Sentence ،Text-consoleها را بهصورت خام نمایش میدهد. این کار برای وارسی سریع کدهای ASCII قابل مشاهده که با USB از ماژول دریافت میشود، مفید است.
نرم افزار U-center میتواند موقعیتها را روی نقشههای از پیش کالیبره شده یا نقشههای آنلاین Google نمایش دهد.
حرف آخر
راه اندازی ماژول GPS ublox NEO-6M با آردوینو را باهم در این مقاله انجام دادیم. همانطور که قبلا هم گفتیم، برای اینکه بتوانید بیشتر با جی پی اس آشنا بشید و بتوانید پروژههای بیشتری را انجام دهید، حتما با این پروژه را اجرا کنید. اگر سوالی در این مورد داشتید هم میتوانید برای ما بنویسید.
۲۲ دیدگاه. Leave new
سلام
من ميخوام داده هاي جي پي اس هر يك ثانيه نمايش داده بشه. از تابع delay كه قطعا نميشه استفاده كرد ولي از تابع millis هم كه استفاده ميكنم يا خطا در آپلود دارم يا جي پي اس مقداري نمايش نميده
دليل بروز اين مشكل كتابخانه software serial هست كه نميدونم بايد چكار كنم
سلام پوریای عزیز،
کدی که قرار دادیم دادهها رو هر یک ثانیه یک بار نمایش میده و از delay استفاده میکنه.
عالی بود
سلام و درود به شما،
خوشحالیم که موردپسند بوده.
سلام برای من مقادیر زیر رو پرینت میکنه مشکل کجاست (از کد دومی استفاده کردم)
Location: Not Available
Date: 0/0/2000
Time: 00:00:00.00
سلام حسین عزیز،
اتصالات رو بررسی کن، ماژول رو در فضای آزاد و رو به آسمان تست کن و بعد از اتصال تغذیه حداقل ۱ دقیقه زمان بده تا موقعیتش رو فیکس کنه،
میتونی با کد اول دیتای خام ارسالی از سمت ماژول رو بررسی کنی.
مشاهده وضعیت LED روی برد هم میتونه به مانیتور کردن وضعیت عملکرد ماژول کمک کنه.
سلام وقت بخیر من دو عدد از این ماژول دارم یکی رو مستقیم وصل کردم به آردوینو و هیچ تغییری در LED رخ نداد یعنی اصلا LED روشن نمیشه ماژول دوم هم مستقیم به منبع تغذیه وصل کردم بازهم هیچ اتفاقی نمیافته و LED خاموشه
درود برشما حسین عزیز
همانطور که داخل مقاله گفته شده، LED نشانگر ماژول تا زمانی که ماهوارهها را پیدا نکرده و موقعیتش تثبیت نشده، به شکل چشمک زن در نخواهد آمد. این پروسه ممکن است تا چند دقیقه هم طول بکشد و همچنین هنگام استفاده ماژول باید به سمت آسمان گرفته شود و زیر سقف و… نباشد تا ارتباط به درستی صورت گیرد.
سلام
من می خوان با این ماژول یک نوع سنسور سرعت بسازم
چه تابعی سرعت تخمینی از ماژول رو نمایش میده؟
با تشکر بابت مطالب و سایت خوبتون
درود برشما احسان عزیز
از این تابع کتابخانه tinygps برای خواندن سرعت میتونی استفاده کنی:
speed.kmph();
برای اطلاعات بیشتر هم مطالعه این لینک مفید هست:
https://circuitdigest.com/microcontroller-projects/arduino-gps-speedometer-using-oled
خسته نباشید ، خواستم ببینم که میشه از این مدار برای ردیابی خودرو استفاده کرد؟
و سرعت رو هم نشون میده یا نه؟
ممنونیم ازت پارسای عزیز
بله برای ردیابی خودرو هم قابل استفادهست اما دقت کن که آنتن ماژول باید در موقعیت مناسبی قرار بگیره که بتونه امواج gps را به درستی دریافت کنه.
سلام وقت بخیر
من یه مشکلی دارم وقتی تمام مراحل رو انجام میدم تو سریال مانیتور اینو میاره :
Location: Not Available
Date : 18/7/2023
Time: 20:18:21:00
کد و کابل ها هم به درستی فعال شدند و چراغ چشمک زن GPS هم هر ۱ ثانیه کار میکنه .
سلام و درود خدمت شما مهدی عزیز
باتوجه به اینکه تاریخ و زمان رو دریافت میکنید ظاهراً مشکل سختافزار یا نرمافزاری ندارید. بنابراین ممکنه مشکل از منطقه شما باشه و بهتره در یک منطقه متفاوت و حتماً در فضای باز، ماژول رو تست کنید.
واقعا ممنون راهنماییتون خیلی کمکم کرد ماژولو به پشت بوم بردم کار کرد .
پشتیبانی سایتتون خیلی عالیه .
این خیلی عالیه، بهت تبریک میگیم بابت انجام این پروژه و گرفتن این نتیجه خوب، واقعا کارت حرف نداره
بیشک اگر انگیزه و همراهی خودت نبود به این مرحله نمیرسیدی،
ما هم ممنونیم ازت که برای ارتقای مهارت خودت سایت ما رو انتخاب کردی، این باعث افتخار ماست.
سلام خسته نباشید ممنون از آموزش شما آگه خواسته باشم به ماژول sim 800c متصل شود از چه پایه های استفاده کنم برنامه هم بزارید
سلام و درود خدمت شما
راهاندازی ماژول sim800c با ماژول sim800l شباهت زیادی دارد. بنابراین با مطالعه مقاله آموزش راه اندازی ماژول SIM800L با آردوینو
میتوانید ایده خوبی بگیرید.
انشاالله در آینده مقالهای در این باره منتشر خواهیم کرد.
سلام وقت بخیر
من میخام با استفاده از این ماژول کلیومتر شمار ماشین بسازم که مسافت رو سنجش کنه این ماژول به درد میخوره ؟ و اینکه یه راهنمایی درمورد ساخت کلومتر شمار با اردیونو بسازم
درود برشما مهدی عزیز
بله. با دریافت latitude و longitude از ماژول GPS و انجام یکسری محاسبات این کار امکانپذیر هست. برای اطلاعات بیشتر لینک زیر رو مطالعه کنید:
https://www.movable-type.co.uk/scripts/latlong.html
روش دیگری که وجود داره سنجش سرعت لحظهای و محاسبه مسافت با رابطه سرعت، زمان، مسافت هست.
اما اگر الزامی به استفاده از ماژول GPS ندارید، بهینهترین کار اینه که تعداد دور چرخش یکی از چرخهای خودرو را به دست بیارید (با یک آهن یا آهنربا و سنسور اثر هال به سادگی قابل پیادهسازی هست، اگر نیازه بیشتر توضیح بدم) و در محیط چرخ ضرب کنید تا مسافت به دست بیاد.
سلام مارول کانفیت شده دارید برای فروش با تمام لوازم آمده نصب چند می شود؟
سلام وقت بخیر
این ماژول نیاز به کانفیگ خاصی ندارد و فقط نیاز به برنامهریزی آردوینو هست که این کار جزو خدمات فروشگاه نیست.