فهرست مطالب:
- مرحله 1: اجزای مورد نیاز
- مرحله 2: اطلاعات مربوط به GPS
- مرحله 3: ماژول GPS Neo-6M
- مرحله 4: آردوینو مگا
- مرحله 5: Arduino IDE
- مرحله 6: اتصالات
تصویری: رابط Arduino Mega با ماژول GPS (Neo-6M): 8 مرحله
2024 نویسنده: John Day | [email protected]. آخرین اصلاح شده: 2024-01-30 08:52
در این پروژه ، نحوه اتصال یک ماژول GPS (Neo-6M) با Arduino Mega را نشان داده ام. کتابخانه TinyGPS برای نمایش داده های طول و عرض جغرافیایی و TinyGPS ++ برای نمایش عرض جغرافیایی ، طول ، ارتفاع ، سرعت و تعداد ماهواره ها در مانیتور سریال استفاده می شود.
مرحله 1: اجزای مورد نیاز
سخت افزار
- آردوینو مگا ==> 30 دلار
- ماژول GPS Neo-6M ==> 30 دلار
نرم افزار
آردوینو IDE
هزینه کل پروژه 60 دلار است
مرحله 2: اطلاعات مربوط به GPS
GPS چیست؟
سیستم موقعیت یابی جهانی (GPS) یک سیستم ناوبری ماهواره ای است که حداقل از 24 ماهواره تشکیل شده است. GPS در هر شرایط آب و هوایی ، در هر نقطه از جهان ، 24 ساعت شبانه روز ، بدون هزینه اشتراک یا هزینه راه اندازی ، کار می کند.
نحوه عملکرد GPS
ماهواره های GPS دو بار در روز در یک مدار دقیق به دور زمین می چرخند. هر ماهواره سیگنال و پارامترهای مداری منحصر به فردی را ارسال می کند که به دستگاه های GPS اجازه می دهد تا مکان دقیق ماهواره را رمزگشایی و محاسبه کنند. گیرنده های GPS از این اطلاعات و سه گانه برای محاسبه مکان دقیق کاربر استفاده می کنند. در اصل ، گیرنده GPS فاصله هر ماهواره را با مدت زمان لازم برای دریافت سیگنال منتقل شده اندازه گیری می کند. با اندازه گیری فاصله از چند ماهواره دیگر ، گیرنده می تواند موقعیت کاربر را تعیین کرده و آن را نمایش دهد.
برای محاسبه موقعیت دو بعدی (عرض و عرض جغرافیایی) و حرکت حرکت ، گیرنده GPS باید روی سیگنال حداقل 3 ماهواره قفل شده باشد. با مشاهده 4 یا بیشتر ماهواره ، گیرنده می تواند موقعیت سه بعدی شما (عرض ، طول و ارتفاع) را تعیین کند. به طور کلی ، گیرنده GPS 8 یا بیشتر ماهواره را ردیابی می کند ، اما این بستگی به زمان روز و مکان شما در زمین دارد. هنگامی که موقعیت شما مشخص شد ، واحد GPS می تواند سایر اطلاعات را محاسبه کند ، مانند
- سرعت
- یاتاقان
- مسیر
- سفر دور
- فاصله تا مقصد
سیگنال چیست
ماهواره های GPS حداقل 2 سیگنال رادیویی کم مصرف را ارسال می کنند. سیگنالها از طریق خط دید حرکت می کنند ، به این معنی که از ابرها ، شیشه و پلاستیک عبور می کنند ، اما از اکثر اجسام جامد ، مانند ساختمانها و کوهها عبور نمی کنند. با این حال ، گیرنده های مدرن حساس تر هستند و معمولاً می توانند خانه ها را ردیابی کنند. سیگنال GPS شامل 3 نوع مختلف اطلاعات است
کد شبه تصادفی
این یک I. D. کدی که مشخص می کند کدام ماهواره اطلاعات را منتقل می کند. در صفحه ماهواره دستگاه خود می توانید از کدام ماهواره ها سیگنال دریافت کنید.
داده های 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 دسی بل دست پیدا می کند ، در حالی که تنها جریان منبع تغذیه 45 میلی آمپر را مصرف می کند. موتور موقعیت یاب u-blox 6 همچنین دارای Time-To-First-Fix (TTFF) کمتر از 1 ثانیه است. یکی از بهترین ویژگی هایی که تراشه ارائه می دهد حالت ذخیره انرژی (PSM) است. با فعال و خاموش کردن انتخابی قسمتهای گیرنده ، می توان مصرف برق سیستم را کاهش داد. این به طور چشمگیری مصرف انرژی ماژول را به 11mA کاهش می دهد و آن را برای برنامه های حساس به قدرت مانند ساعت مچی GPS مناسب می کند. پین های داده مورد نیاز تراشه GPS NEO-6M در هدرهای 0.1 اینچ پاره می شوند. این شامل پین های مورد نیاز برای ارتباط با میکروکنترلر از طریق UART است.
توجه:- ماژول از سرعت باود از 4800 تا 230400 بیت در ثانیه با نرخ پیش فرض 9600 پشتیبانی می کند.
نشانگر LED موقعیت ثابت
یک LED در ماژول GPS NEO-6M وجود دارد که وضعیت ثابت موقعیت را نشان می دهد. بسته به اینکه در چه وضعیتی است با سرعت های مختلف چشمک می زند
- بدون چشمک زدن ==> بدان معنی است که در حال جستجو برای ماهواره است
- هر 1 ثانیه پلک بزنید - بدین معناست که Position Fix یافت می شود
تنظیم کننده 3.3V LDO
ولتاژ کاری تراشه NEO-6M از 2.7 تا 3.6 ولت است. اما ، این ماژول دارای تنظیم کننده فوق العاده کم ترک 3V3 MIC5205 از MICREL است. پین های منطقی نیز 5 ولت تحمل دارند ، بنابراین می توانیم آن را به راحتی بدون استفاده از مبدل سطح منطقی به آردوینو یا هر میکروکنترلر منطقی 5 ولت متصل کنیم.
باتری و EEPROM
ماژول مجهز به یک سری EEPROM دو سیم HK24C32 است. اندازه آن 4 کیلوبایت است و از طریق I2C به تراشه NEO-6M متصل می شود. این ماژول همچنین دارای یک باتری دکمه قابل شارژ است که به عنوان یک خازن فوق العاده عمل می کند.
EEPROM به همراه باتری به حفظ RAM پشتیبان باتری (BBR) کمک می کند. BBR شامل داده های ساعت ، آخرین داده های موقعیت (داده های مدار GNSS) و پیکربندی ماژول است. اما برای ذخیره دائمی داده ها در نظر گرفته نشده است.
با حفظ ساعت و آخرین وضعیت باتری ، زمان اولین تعمیر (TTFF) به طور قابل توجهی به 1 ثانیه کاهش می یابد. این اجازه می دهد تا قفل های موقعیت بسیار سریعتر انجام شود.
بدون باتری ، GPS همیشه سرد راه اندازی می شود ، بنابراین قفل اولیه GPS زمان بیشتری می برد. باتری را به صورت خودکار شارژ می کند و داده ها را تا دو هفته بدون برق نگه می دارد.
Pinout
GND پین زمینی است و باید به پین GND در آردوینو متصل شود
پین TxD (فرستنده) برای ارتباط سریال استفاده می شود
پین RxD (گیرنده) برای ارتباط سریال استفاده می شود
VCC منبع تغذیه ماژول را تامین می کند. می توانید آن را مستقیماً به پین 5 ولت در آردوینو وصل کنید
مرحله 4: آردوینو مگا
آردوینو یک پلتفرم الکترونیکی منبع باز است که بر اساس سخت افزار و نرم افزارهای آسان برای استفاده است. بردهای آردوینو می توانند ورودی ها - نور روی سنسور ، انگشت روی دکمه یا پیام توییتر - را بخوانند و آن را به خروجی تبدیل کنند - موتور را فعال کرده ، LED را روشن کنند ، چیزی را به صورت آنلاین منتشر کنند. با ارسال مجموعه ای از دستورالعمل ها به میکروکنترلر روی برد ، می توانید به برد خود بگویید که چه کار کند. برای انجام این کار ، از زبان برنامه نویسی آردوینو (بر اساس سیم کشی) و نرم افزار آردوینو (IDE) ، بر اساس پردازش استفاده می کنید.
آردوینو مگا
Arduino Mega 2560 یک برد میکروکنترلر است که بر اساس Atmega2560 طراحی شده است.
- 54 پین I/O دیجیتال و 16 پین آنالوگ در برد گنجانده شده است که این دستگاه را منحصر به فرد کرده و از سایرین متمایز است. از 54 ورودی/خروجی دیجیتال ، 15 مورد برای PWM (مدولاسیون عرض پالس) استفاده می شود.
- یک نوسان ساز کریستالی با فرکانس 16 مگاهرتز روی برد اضافه شده است.
- این برد دارای پورت کابل USB است که برای اتصال و انتقال کد از رایانه به برد استفاده می شود.
- جک برق DC با برد مورد استفاده برای تغذیه برد همراه است.
- این برد دارای دو تنظیم کننده ولتاژ یعنی 5 ولت و 3.3 ولت است که انعطاف پذیری لازم برای تنظیم ولتاژ را بر اساس الزامات فراهم می کند.
- یک دکمه تنظیم مجدد و 4 پورت سریال سخت افزاری به نام USART وجود دارد که حداکثر سرعت را برای ایجاد ارتباط ایجاد می کند.
- سه راه برای تغذیه برد وجود دارد. شما می توانید از کابل USB برای تغذیه برد و انتقال کد به برد استفاده کنید یا می توانید آن را با استفاده از Vin برد برد یا از طریق پریز برق یا خمیر تغذیه کنید.
مشخصات فنی
Pinout
توضیحات پین
- 5V & 3.3V ==> این پین برای ارائه ولتاژ تنظیم شده خروجی در حدود 5V استفاده می شود. این منبع تغذیه تنظیم شده کنترل کننده و سایر اجزای روی برد را تغذیه می کند. می توان آن را از Vin برد یا کابل USB یا منبع تغذیه تنظیم شده دیگر 5V دریافت کرد. در حالی که تنظیم ولتاژ دیگر توسط پین 3.3V ارائه شده است. حداکثر قدرتی که می تواند بکشد 50 میلی آمپر است.
- GND ==> 5 پایه پایه روی تخته موجود است که در صورت نیاز به بیش از یک پایه پایه برای پروژه مفید است.
- Reset ==> این پین برای تنظیم مجدد برد استفاده می شود. اگر این پین را روی 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). این پین ها به روش های مختلفی وقفه ایجاد می کنند ، یعنی ارائه مقدار LOW ، افزایش یا کاهش لبه یا تغییر مقدار در پین های وقفه.
- LED ==> این برد دارای LED داخلی متصل به پین دیجیتال 13. مقدار بالا در این پین LED را روشن کرده و مقدار LOW آن را خاموش می کند.
- AREF ==> AREF مخفف Analog Reference Voltage است که یک ولتاژ مرجع برای ورودی های آنالوگ است.
- پین های آنالوگ ==> 16 پین آنالوگ در برد با برچسب A0 تا A15 وجود دارد. لازم به ذکر است که همه این پین های آنالوگ را می توان به عنوان پین های ورودی/خروجی دیجیتال استفاده کرد. هر پین آنالوگ دارای وضوح 10 بیت است. این پین ها می توانند از سطح زمین تا 5 ولت اندازه گیری شوند. با این حال ، مقدار بالا را می توان با استفاده از تابع AREF و analogReference () تغییر داد.
- I2C ==> دو پین 20 و 21 از ارتباط I2C پشتیبانی می کنند که در آن 20 نشان دهنده SDA (خط داده سریال به طور عمده برای نگهداری داده ها) و 21 نشان دهنده SCL (خط ساعت سریال عمدتا برای ارائه همگام سازی داده ها بین دستگاه ها استفاده می شود)
- SPI Communication ==> SPI مخفف Serial Peripheral Interface است که برای انتقال داده ها بین کنترلر و سایر اجزای جانبی استفاده می شود. چهار پین یعنی 50 (MISO) ، 51 (MOSI) ، 52 (SCK) ، 53 (SS) برای ارتباط SPI استفاده می شود.
مرحله 5: Arduino IDE
در اینجا من فرض می کنم که شما قبلاً Arduino IDE را نصب کرده اید.
1. کتابخانه مورد نیاز در زیر را بارگیری کنید
lib TinyGPS
2. پس از بارگیری آن. آن را استخراج کرده و به پوشه C: / Users \… / Documents / Arduino / libraries مطمئن شوید که هیچ (-) وجود ندارد.
3. Arduino IDE را باز کرده و کد را از قسمت برنامه کپی کنید.
4. سپس برد را برای آن انتخاب کنید به Tools ==> Boards ==> برد انتخاب شده در اینجا از Arduino Mega 2560 استفاده می کنیم
5. پس از انتخاب برد ، پورت مورد نظر را انتخاب کنید و به قسمت Tools ==> Ports بروید
6 پس از انتخاب برد و پورت روی بارگذاری کلیک کنید.
7. پس از بارگذاری کد ، ترمینال سریال را باز کنید تا خروجی را مشاهده کنید.
مرحله 6: اتصالات
Arduino MEGA ==> GPS NEO-6M
- 3.3V ==> VCC
- GND ==> GND
- Tx1 (18) ==> Rx
- Rx (19) ==> Tx
همچنین می توانید به جای Serial1 از Serial2 یا Serial3 استفاده کنید
توصیه شده:
رابط ماژول GPS با Raspberry Pi: 10 مرحله
رابط ماژول GPS با Raspberry Pi: سلام بچه ها !! آیا مایل به اتصال یک ماژول GPS با رزبری پای هستید؟ اما برای انجام این کار با مشکلاتی روبرو هستید؟ "نگران نباشید ، من اینجا هستم تا به شما کمک کنم! می توانید با استفاده از قسمت های زیر شروع کنید:
شروع به کار با رابط سنسور I2C ؟؟ - رابط MMA8451 خود را با استفاده از ESP32s انجام دهید: 8 مرحله
شروع به کار با رابط سنسور I2C ؟؟ - رابط MMA8451 خود را با استفاده از ESP32s: در این آموزش ، با نحوه راه اندازی ، اتصال و دریافت دستگاه I2C (شتاب سنج) کار با کنترلر (Arduino ، ESP32 ، ESP8266 ، ESP12 NodeMCU) آشنا خواهید شد
رابط ماژول GPS با Raspberry Pi: Dashcam قسمت 2: 3 مرحله
رابط ماژول GPS با Raspberry Pi: Dashcam قسمت 2: این قسمت 2 از پروژه dashcam است و در این پست ، ما نحوه اتصال یک ماژول GPS به Raspberry Pi را یاد می گیریم. سپس از داده های GPS استفاده کرده و آن را به عنوان یک پوشش متنی به فیلم اضافه می کنیم. لطفاً قسمت 1 را با استفاده از پیوند زیر ، قبل از
رابط ماژول GPS با Arduino Uno: 7 مرحله
رابط ماژول GPS با Arduino Uno: سلام! آیا می خواهید یک ماژول GPS به برد Arduino Uno خود متصل کنید ، اما نمی دانید چگونه این کار را انجام دهید؟ من اینجا هستم تا به شما کمک کنم! برای شروع به قطعات زیر نیاز دارید
نحوه رابط ماژول GPS (NEO-6m) با آردوینو: 7 مرحله (همراه با تصاویر)
نحوه رابط ماژول GPS (NEO-6m) با آردوینو: در این پروژه ، نحوه رابط یک ماژول GPS با Arduino UNO را نشان داده ام. داده های طول و عرض جغرافیایی در LCD نمایش داده می شود و مکان را می توان در برنامه مشاهده کرد. لیست مواد Arduino Uno == & gt؛ $ 8 Ublox NEO-6m ماژول GPS == & gt؛ 15 دلار 16 برابر