آموزش SDK EC200- قسمت سوم- ارتباط با ماهواره- GNSS

smem
26 بازدید
۱۴۰۴-۰۴-۰۹
10 دقیقه
  • نویسنده: آرویدتک
  • درباره نویسنده: www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک

سیستم ماهواره‌ای ناوبری جهانی (GNSS) یک فناوری پیشرفته و حیاتی است که در زمینه ناوبری و تعیین موقعیت مکانی در سراسر جهان مورد استفاده قرار می‌گیرد. این سیستم با استفاده از شبکه‌ای از ماهواره‌ها، امکان تعیین موقعیت دقیق و زمان‌بندی هماهنگ را برای کاربران در هر نقطه از کره زمین فراهم می‌کند.

GNSS شامل چندین سیستم ماهواره‌ای است که توسط کشورهای مختلف راه‌اندازی شده‌اند، از جمله سیستم موقعیت‌یاب جهانی (GPS) ایالات متحده، سیستم گلوناس (GLONASS) روسیه، سیستم بیدو (BeiDou) چین و سیستم گالیله (Galileo) اتحادیه اروپا. هر یک از این سیستم‌ها دارای ماهواره‌های متعددی هستند که در مدار زمین قرار دارند و سیگنال‌هایی را ارسال می‌کنند که توسط گیرنده‌های GNSS روی زمین دریافت می‌شوند.

این فناوری در طیف وسیعی از کاربردها از جمله ناوبری هوایی و دریایی، نقشه‌برداری، کشاورزی دقیق، مدیریت ناوگان، و حتی در گوشی‌های هوشمند برای تعیین موقعیت مکانی کاربران مورد استفاده قرار می‌گیرد. با ترکیب سیگنال‌ها از چندین سیستم GNSS، دقت و قابلیت اطمینان تعیین موقعیت به طور قابل توجهی افزایش می‌یابد.

در ایران نیز، استفاده از GNSS در بخش‌های مختلف از جمله حمل و نقل، نقشه‌برداری و تحقیقات علمی رو به گسترش است. با توجه به اهمیت این فناوری در توسعه زیرساخت‌ها و بهبود خدمات مکانی، کشورمان نیز در تلاش است تا از مزایای GNSS به بهترین نحو بهره‌برداری کند.

در این بخش، به معرفی اجمالی GNSS و کاربردهای آن پرداختیم و در ادامه، به بررسی بیشتر این فناوری و تاثیر آن بر زندگی روزمره و صنایع مختلف بپردازیم.  به برخی از کاربردهای GNSS در صنایع مختلف به شکل زیر است:

1. حمل و نقل و ناوبری

  • ناوبری هوایی، دریایی و زمینی.
  • مدیریت ناوگان و ردیابی خودروها.
  • سیستم‌های کمک راننده (ADAS) و خودروهای خودران.

2. نقشه‌برداری و ژئوماتیک

  • تهیه نقشه‌های دقیق.
  • نظارت بر تغییرات زمین‌شناسی.
  • پروژه‌های ساختمانی و عمرانی.

3. مدیریت بحران و امداد و نجات

  • ردیابی افراد در مناطق حادثه‌دیده.
  • نظارت بر بلایای طبیعی مانند زلزله و سیل.

4. توریسم و تفریح

  • راهنمایی مسافران در مناطق ناشناخته
  • ردیابی فعالیت‌های ورزشی مانند دویدن و دوچرخه‌سواری

5. انرژی

  • نظارت بر خطوط انتقال انرژی.
  • مدیریت منابع انرژی تجدیدپذیر مانند پنل‌های خورشیدی.

درکنار GNSS مفهوم دیگری به نام AGPS وجود دارد که مخفف Assisted GPS یا “جی‌پی‌اس کمک‌دار” است. این فناوری یک روش بهبود یافته از سیستم موقعیت‌یاب جهانی (GPS) است که برای افزایش سرعت و دقت تعیین موقعیت در شرایط دشوار، مانند مناطق شهری با ساختمان‌های بلند یا محیط‌های داخلی، طراحی شده است.

کاربرد و مزایای AGPS

۱. تسریع در تعیین موقعیت

– در GPS معمولی، گیرنده باید سیگنال‌ها را از ماهواره‌ها دریافت کند و این فرایند ممکن است در شرایط نامساعد زمان‌بر باشد. AGPS با استفاده از داده‌های کمکی از منابع دیگر، مانند شبکه‌های موبایل یا Wi-Fi، زمان لازم برای قفل شدن روی ماهواره‌ها (Time to First Fix) را کاهش می‌دهد.

۲. دقت بالاتر در محیط‌های دشوار

– در مناطق شهری با ساختمان‌های بلند یا محیط‌های داخلی، سیگنال‌های GPS ممکن است ضعیف یا مسدود شوند. AGPS با ترکیب داده‌های ماهواره‌ای و اطلاعات از منابع دیگر، دقت تعیین موقعیت را در این شرایط بهبود می‌بخشد.

۳. کاربرد در گوشی‌های هوشمند

– AGPS به طور گسترده‌ای در گوشی‌های هوشمند و دستگاه‌های موبایل استفاده می‌شود. این فناوری به برنامه‌های ناوبری، نقشه‌برداری و برنامه‌های مبتنی بر موقعیت مکانی کمک می‌کند تا سریع‌تر و دقیق‌تر کار کنند.

۴. کاهش مصرف انرژی

– با تسریع در فرایند تعیین موقعیت، AGPS مصرف انرژی دستگاه را کاهش می‌دهد، که برای دستگاه‌های موبایل با باتری محدود بسیار مهم است.

۵. کاربرد در اینترنت اشیا (IoT)

– در دستگاه‌های IoT که نیاز به تعیین موقعیت دارند، AGPS می‌تواند کارایی را بهبود بخشد. به عنوان مثال، در ردیابی دارایی‌ها، مدیریت ناوگان یا حتی در دستگاه‌های پوشیدنی.

۶. حمایت از خدمات مبتنی بر موقعیت مکانی

– AGPS به خدمات مبتنی بر موقعیت مکانی، مانند تبلیغات هدفمند، خدمات امدادی و برنامه‌های اجتماعی، کمک می‌کند تا دقیق‌تر و کارآمدتر عمل کنند.

در ایران نیز، با توجه به گسترش استفاده از گوشی‌های هوشمند و خدمات مبتنی بر موقعیت مکانی، AGPS نقش مهمی در بهبود تجربه کاربران و ارائه خدمات دقیق‌تر ایفا می‌کند اما متاسفانه پس از تحریم ها استفاده از این فناوری دچار مشکل شده است هرچند که خوشبختانه ماژول کویکتل از این قابلیت پشتیبانی میکند. در ادامه به بررسی کاربردهای GNSS در اینترنت اشیا میپردازیم.

کاربردهای GNSS در اینترنت اشیا (IoT)

 GNSS به عنوان یک فناوری کلیدی، نه تنها در صنایع سنتی بلکه در حوزه‌های نوین مانند IoT نیز نقش حیاتی ایفا می‌کند. با ادغام GNSS با سایر فناوری‌ها مانند حسگرها، ارتباطات بی‌سیم و هوش مصنوعی، امکان ایجاد سیستم‌های هوشمند و کارآمدتر فراهم می‌شود. در ایران نیز، با توجه به نیازهای توسعه‌ای و اهمیت دقت در موقعیت‌یابی، استفاده از GNSS در حال گسترش است و می‌تواند به بهبود زیرساخت‌ها و خدمات در بخش‌های مختلف کمک کند. برخی از کاربردهای آن عبارتند از:

1. ردیابی دارایی‌ها

  • ردیابی کالاها در زنجیره تأمین.
  • نظارت بر تجهیزات گران‌قیمت مانند ماشین‌آلات صنعتی.

2. شهر هوشمند

  • مدیریت ترافیک و پارکینگ.
  • نظارت بر زیرساخت‌های شهری مانند روشنایی و زباله.

3. کشاورزی هوشمند

  • نظارت بر شرایط خاک و آب و هوا.
  • کنترل خودکار سیستم‌های آبیاری.

4. سلامت و تناسب اندام

  • ردیابی فعالیت‌های ورزشی.
  • نظارت بر بیماران در خانه.

5. حفاظت از محیط زیست

  • ردیابی حیوانات در طبیعت.
  • نظارت بر تغییرات آب و هوایی و آلودگی.

6. امنیت

  • ردیابی وسایل نقلیه و اشیاء ارزشمند.
  • سیستم‌های هشداردهی در مواقع خطر.

همانطور که مشاهده کردید GNSS در تمام صنایع و مخصوصا در پروژه های IOT اهمیت بالایی دارد. خوشبختانه ماژولی که استفاده میکنیم از این قابلیت و قابلیتهای بیشتری که در پستهای قبل مشاهده کردید پشتیبانی میکند که این ماژول را به گزینه ی بسیار خوبی برای پروژه های مرتبط تبدیل میکند. در این پست قصد داریم که راه اندازی GNSS را باهم بررسی کنیم.

راه اندازی GNSS

قبل از اینکه به بررسی برنامه بپردازیم لازم است این نکته را خاطرنشان کنم که باید ماژول شما از نوع (AA) باشد تا قابلیت GNSS را پشتیبانی کند اما چنانچه این ماژول را در دسترس ندارید میتوانید همچنان از ادامه این آموزش استفاده کنید چراکه با بعضی از قابلیتهایی که در ماژول فعلیتان وجود دارد آشنا میشوید.

در اینجا میخواهم ابتدا شما را با ابزاری که برای دیدن داده (لاگ) برنامه استفاده میکنیم آشنا کنم. برای اینکار از برنامه coolwatcher استفاده میکنیم به این صورت که برنامه coolwatcher  را اجرا کرده و پورت مناسب (AP LOG)  را انتخاب میکنیم و داده ها را دریافت میکنیم. اگر از ویندوز استفاده میکنید بجز انتخاب صحیح پورت چالش دیگری ندارید اما چنانچه از لینوکس استفاده میکنید لازم است تا تنظیمات را به صورت زیر انجام دهید.

با استفاده از کد بالا پورت چهارم که مربوط به داده های مورد انتظار برنامه است را به عنوان COM معرفی میکنیم، زیرا برنامه به دنبال COM است. (ممکن است شماره پورت در سیستم شما متفاوت باشد که در این صورت باید شماره ی دیگری را برای آن درنظر بگیرید و کد بالا را به طور مناسب برای سیستم خود ویرایش کنید.) برای انتخاب پورت صحیح مانند عکس شماره پورت مورد نظر را در قسمت آبی رنگ وارد کنید و روی OK کلیک نمایید.

آموزش SDK EC200- قسمت سوم- ارتباط با ماهواره- GNSS

پنجره ای مانند تصور زیر برای شما باز میشود که در آن لازم است مانند تصویر گزینه ی Trace را انتخاب کنید.

آموزش SDK EC200- قسمت سوم- ارتباط با ماهواره- GNSS

سپس از منوی Trace قسمت Play  را انتخاب کنید. حالا باید داده ها را دریافت کنید.

آموزش SDK EC200- قسمت سوم- ارتباط با ماهواره- GNSS

برای استفاده از GNSS ابتدا نیاز است که از فایل ql_init.c تابع ql_gnss_app_init از حالت کامنت خارج کنید و سپس مانند آنچه در آموزش قبل داشتیم برنامه را کامپایل کنید. قسمتی که باید از کامنت خارج کنید:

مانند آنچه در آموزش قبل دیدیم کد ما سه قسمت دارد که تکرار نمیکنم و در عوض میخواهم شما را با استفاده از UART برای دریافت پیامهای GPS آشنا کنم. برای اینکه استفاده از UART  را به طور جامع یادبگیرید میتوانید به مثال مربوط در فایل ql_init.c یعنی تابع ql_uart_app_init مراجعه کنید هرچند که اینجا چیزی که به آن نیاز دارید را خواهید آموخت. برای استفاده از UART ابتدا لازم است که کتابخانه مربوط را اضافه کنیم:

نیاز است که کتابخانه ql_pin_cfg را از فایلهای پروژه (با استفاده از مثالها) پیدا کنید و در دایرکتوری inc مثال gnss کپی کنید. سپس به سراغ کد میرویم. کد ما دو تابع دارد که یکی به عنوان تابع فراخوان (callback) و دیگری به عنوان تابع اصلی مورد استفاده قرار میگیرد. تابع اصلی به شکل زیر است:

در این تابع از ellipsis استفاده کردیم که برای ما یک تابع Variadic میسازه که میتونیم ورودیهای متفاوتی بهش بدیم. اگر در این مورد اطلاعات کافی ندارید به آموزشهای C مراجعه کنید. بجز چیزی که گفته شد تابع ما نکته خاصی نداره.

به ترتیب ابتدا متغییرها رو تعریف میکنیم و بعد از اون تنظیمات UART  را روی چیزی که لازم داریم قرار میدیم، در آخر هم با بررسی شرط اعمال شدن موفق تنظیماتی که انجام دادیم، پیام را ارسال میکنیم یا توسط تابع فراخوان آن را دریافت میکنیم. تابع فراخوان به شکل زیر است:

در این مثال از تابع فراخوان استفاده نمیکنیم و فقط برای اینکه درمورد روش کارکردن توابع UART بیشتر بدانید این تابع را در اینجا آوردم. به طور خلاصه این تابع بررسی میکند که اگر داده ای وجود داشته باشد آن را ذخیره کند.

ساختار کلی کدی که شرکت برای GNSS ساخته را تغییر نمیدهیم و فقط نیاز است تابع  nmea_dbg_log و QL_GNSSDEMO_LOG  را با تابع gnss_uart_log که نوشتیم جایگزین کنیم و سپس برنامه را کامپایل و نصب کنید. به این صورت پیامهای GNSS روی UART قابل مشاهده است.

آموزش SDK EC200- قسمت سوم- ارتباط با ماهواره- GNSS

همانطور که مشاهده میکنید دستگاه هنوز نتوانسته پیامی از ماهواره بگیرد. معمولا چنانچه آنتن مناسبی استفاده کنید و نزدیک پنجره باشد پس از مدت کوتاهی پیام ماهواره را دریافت میکنید. کد کامل در ادامه ی این متن برای استفاده شما عزیزان قرار داده شده است.

زمانی که شما در فایل ql_init.c تابع را از حالت کامنت خارج میکنید تابع ql_gnss_app_init صدازده میشود که یک تسک به نام ql_gnss_demo_thread برای ما میسازد. در تابع ql_gnss_demo_thread ابتدا متغییرها تعریف میشوند و بعد با تابع ql_gnss_switch سراغ راه اندازی (Enable) کردن GNSS میرویم.

چنانچه از قبل روشن باشد پیامی بازمیگرداند که این قابلیت از قبل فعال است و اگر این قابلیت را پشتیبانی نکند یا خطا داشته باشیم از برنامه خارج میشود و در غیر این صورت به درستی فعال شده است. تابع مهم بعدی ql_gnss_callback_register است که تابع بازگشتی (callback) برنامه نویس  را تعریف میکند. بعد از آن تابع ql_gnss_apflash_getpvdata است که استراکچری که برای داده های GNSS میخواهیم استفاده کنیم را به آن میدهیم که شامل داده هایی مثل طول و عرض جغرافیایی و زمان میشود. تابع بعدی  ql_gnss_get_cfg است که به آن استراکچری که برای اطلاعات کانفیگ GNSS هست را به آن میدهیم. در لوپ بینهایتی که در ادامه داریم پیامهای GNSS مدیریت میشود. این داده ها توسط تابع ql_gnss_nmea_get دریافت و وضیت آن توسط ql_gnss_apflash_get_recv_status مشخص میشود و بوسیله ی توابع بعدی خطاهای احتمالی بررسی و رفع میشود و در ادامه چنانچه خطایی نباشد خروجی برای ما چاپ میشود.

امیدوارم از این آموزش استفاده کرده باشید. منتظر آموزشهای بعدی باشید. 🙂

اطلاعات
26
0
0
لینک و اشتراک
profile

آرویدتک

متخصص الکترونیک

وبسایت: http://www.arvidtek.com

www.arvidtek.com | گروه مهندسی آرویدتک | فعال حوزه الکترونیک و مخابرات | فروشگاه تخصصی قطعات الکترونیک

مقالات بیشتر
slide

پالت | بازار خرید و فروش قطعات الکترونیک

قطعات اضافه و بدون استفاده همیشه یکی از سرباره‌‌های شرکتها و طراحان حوزه برق و الکترونیک بوده و هست. پالت سامانه‌ای است که بصورت تخصصی اجازه خرید و فروش قطعات مازاد الکترونیک را فراهم می‌کند. فروش در پالت
family

آیسی | موتور جستجوی قطعات الکترونیک

سامانه آی سی سیسوگ (Isee) قابلیتی جدید و کاربردی از سیسوگ است. در این سامانه سعی شده است که جستجو، انتخاب و خرید مناسب تر قطعات برای کاربران تسهیل شود. جستجو در آیسی
family

سیسوگ‌شاپ | فروشگاه محصولات Quectel

فروشگاه سیسوگ مجموعه ای متمرکز بر تکنولوژی های مبتنی بر IOT و ماژول های M2M نظیر GSM، GPS، LTE، NB-IOT، WiFi، BT و ... جایی که با تعامل فنی و سازنده، بهترین راهکارها انتخاب می شوند. برو به فروشگاه سیسوگ
family

سیسوگ فروم | محلی برای پاسخ پرسش‌های شما

دغدغه همیشگی فعالان تخصصی هر حوزه وجود بستری برای گفتگو و پرسش و پاسخ است. سیسوگ فروم یک انجمن آنلاین است که بصورت تخصصی امکان بحث، گفتگو و پرسش و پاسخ در حوزه الکترونیک را فراهم می‌کند. پرسش در سیسوگ فرم
family

سیکار | اولین مرجع متن باز ECU در ایران

بررسی و ارائه اطلاعات مربوط به ECU (واحد کنترل الکترونیکی) و نرم‌افزارهای متن باز مرتبط با آن برو به سیکار
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
خانواده سیسوگ
سیسوگ‌شاپ

فروشگاه محصولات Quectel

پالت
سیسوگ فروم

محلی برای پاسخ پرسش‌های شما

سیسوگ جابز
سیسوگ
سیسوگ فروم
سی‌کار

اولین مرجع متن باز ECU در ایران

سیسوگ مگ
آی‌سی

موتور جستجوی قطعات الکترونیکی

سیسوگ آکادمی
پالت

بازار خرید و فروش قطعات الکترونیک

دیدگاه ها

become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله
become a writer

نویسنده شو !

سیسوگ با افتخار فضایی برای اشتراک گذاری دانش شماست. برای ما مقاله بنویسید.

ارسال مقاله