اطلاعیه

Collapse
No announcement yet.

سوال در رابطه با gps (ماژول و مرکز مختصات آن)

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    #16
    پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

    با سلام ممنون از جوابتون
    من برای شروع بیشتر به GPGLL نیاز دارم تا از ان ساعت و طول و عرض و پیدا کنم
    راستی سرعت حرکت کجاست؟
    اگه یکیشو بگی بقیه حله تو bascom اون دستراتی که گفتی هست

    دیدگاه


      #17
      آموزش نحوه تحلیل اطلاعات ماژول gps

      $GPRMC,163624.00,A,3542.97149,N,05123.23602,E,[glow=red,2,300]0.164[/glow],170.82,090608,,,A*60
      این سرعت بر حسب گره دریایی هستش.

      gpgll در اول به شکل زیره:
      $GPGLL,3542.97149,N,05123.23602,E,163624.00,A,A*6F

      c0 یه آرایه 32 درایه ای هست که تمام درایه هاش از نوع byte هستن ، b0 و i هم از نوع byte هستن .
      اطلاعات شما به محض دریافت (هر بایت) باید سریعا در b0 قرار بگیره (که به عهده خودته) و وارد ابتدای سیکل loop بشه . تا نتیجه نهاییت که به صورت زیره در آرایه c0 قرار بگیره . (نتیجه از دومین حرف G (در gpgll) ، تا آخر داده ی gpgll (عدد 4 در مثال زیر مربوط به یکان ثانیه) به صورتی که کاما ها حذف شده اند میباشد)

      GLL3542.97149N05123.23602E163624

      این که هر کدوم از این اعداد و مرزشون تا کجا ادامه دارن رو از روی جداولی که دقیقا در لینک زیر توضیح داده شدن جستجو کن . (عبارت gpgll رو در لینک زیر جستجو کن تا به جدولش برسی)
      http://home.mira.net/~gnb/gps/nmea.htm

      اگرم خواستی کاماهات حذف نشن ، بگو تا تغییرات لازمو بدم .(من برای صرفه جویی در ram میکرو حذفشون کردم)
      دقت کن که خروجی موجود در c0 ت ، هر کاراکترش (مثلا عدد 3 موجود در درایه سوم آرایه (از صفر شروع میشه شمردن و از چپ به راست)) یک بایته و دادش از نوع ascii هست.
      بعد از هر دفعه که بایتت از gps اومد و اونو توی b0 ریختی ، سریعا برنامرو به loop ارجاع بده.
      هر یه دوری که داده هات از ماژول بیان ، c0 پدیت میشه.



      i=3
      b0="q"
      loop:
      if b0="q" then loop
      goto charout

      charout:
      if b0="G" then
      c0[0]=b0
      else
      goto loop
      endif
      b0="q"
      goto loop1

      loop1:
      if b0="q" then loop1
      goto charout1

      charout1:
      if b0="L" then
      c0[1]=b0
      else
      goto loop
      endif
      b0="q"
      goto loop2

      loop2:
      if b0="q" then loop2
      goto charout2

      charout2:
      if b0="L" then
      c0[2]=b0
      else
      goto loop
      endif
      b0="q"
      goto loop3

      loop3:
      if b0="q" then loop3
      goto charout3

      charout3:
      if b0="," then
      b0="q"
      goto loop3
      else
      c0[i]=b0
      endif
      b0="q"
      i=i+1
      if i=32 then [glow=red,2,300]show[/glow]
      goto loop3


      به جای لیبل show هم که من استفاده کردم (خط یکی به آخر) ، شما هر چی میخوای بذار . برنامت بعد از جدا کردن gpgll و قرار دادن اون توی c0 ، به لیبل show میره و اونجا هر بلایی خواستی سر داده هات میاری.

      مشغول در این دنیای آکل و ماکول .......

      دیدگاه


        #18
        آموزش نحوه تحلیل اطلاعات ماژول gps

        اما دقت کن که تمام داده های موجود در c0 ، اسکی هستن و شما ازشون به عنوان عدد برای اعمال ریاضی نمیتونی استفاده کنی .
        پس در اول لیبل show ت ، تکه زیر را قرار بده تا تمام عددهای موجود در c0 رو با معادل دسیمالش عوض کنه :
        for i=0 to 31
        if c0[i]="0" then c0[i]=0
        if c0[i]="1" then c0[i]=1
        if c0[i]="2" then c0[i]=2
        if c0[i]="3" then c0[i]=3
        if c0[i]="4" then c0[i]=4
        if c0[i]="5" then c0[i]=5
        if c0[i]="6" then c0[i]=6
        if c0[i]="7" then c0[i]=7
        if c0[i]="8" then c0[i]=8
        if c0[i]="9" then c0[i]=9
        next
        مشغول در این دنیای آکل و ماکول .......

        دیدگاه


          #19
          آموزش نحوه تحلیل اطلاعات ماژول gps

          3تا نکته دیگه :
          هر گره دریایی 1.852 کیلومتر بر ساعته .

          برای بدست آوردن ساعت ایران از روی ساعت gmt باید اونو 4:30 جلو ببری ، دقیق.

          برای تبدیل مثلا 3542.96702 که در بالا به عنوان مثال گفتم به درجه باید به صورت زیر عمل کنی :
          هست : 35 درجه و 42.96702 دقیقه .
          که معادل درجش میشه : 35+ 60/(42.96702) = درجه35.716117
          یعنی دقیقرو باید تقسیم به 60 و با درجت جمع کنی.
          مشغول در این دنیای آکل و ماکول .......

          دیدگاه


            #20
            آموزش نحوه تحلیل اطلاعات ماژول gps

            چون لینک فیلتر شده ، اینم توضیخات gpgll :


            $GPGLL
            Geographic Position, Latitude / Longitude and time.

            eg1. $GPGLL,3751.65,S,14507.36,E*77
            eg2. $GPGLL,4916.45,N,12311.12,W,225444,A

            4916.46,N Latitude 49 deg. 16.45 min. North
            12311.12,W Longitude 123 deg. 11.12 min. West
            225444 Fix taken at 2244 UTC
            A Data valid

            eg3. $GPGLL,5133.81,N,00042.25,W*75
            1 2 3 4 5

            1 5133.81 Current latitude
            2 N North/South
            3 00042.25 Current longitude
            4 W East/West
            5 *75 checksum

            $--GLL,lll.ll,a,yyyyy.yy,a,hhmmss.ss,A llll.ll = Latitude of position

            a = N or S
            yyyyy.yy = Longitude of position
            a = E or W
            hhmmss.ss = UTC of position
            A = status: A = valid data
            مشغول در این دنیای آکل و ماکول .......

            دیدگاه


              #21
              پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

              با سلام
              آقای جعفری از راهنمایی وپاسخ کاملتون و از اینک وقت گذاشتید بینهایت ممنون
              :applause:
              در اولین فرصت برنامه رو می نویسم اگه مشکلی بود مطرح می کنم

              دیدگاه


                #22
                پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

                هر ثانیه چند متره؟ اگه ما دو تا موقعیت جغرافیایی داشته باشیم چه جوری باید فاصلشونو بر حسب متر به دست بیاریم؟

                دیدگاه


                  #23
                  پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

                  فکر می کنم اگه قطر زمین داشته باشی خودت بتون حساب کنی. قطر زمین 12756 کیلومتر هست . محیط زمین و بدست بیار بعد تقسیم بر 360 کن . هر درجه به دست میاد . یعنی هر درجه 111317.099692 متره .
                  پس هر ثانیه میشه:30.92141658 متر. از اونجا که معمولاً این ماژول ها اطلاعات رو بر حسب صدم ثانیه میدن می تونی با اختلاف خیلی کمی مسافتتو پیدا کنی (+-30 سانتی متر)

                  دیدگاه


                    #24
                    اندازه گیری فاصله با استفاده از تفاوت زاویه

                    فرمایش جناب ظهیری تایید میشه.
                    شرمنده ، من وقت نداشتم ، برای همین دیر جواب دادم .
                    فقط 1 چیزیو دقت کنین.زمین گرده نه مسطح ، یعنی فاصله بین دو نقطه در واقع طول پاره خط واصل بین آنهاست ، و ما وقتی در مختصات زاویه ای بحث می کنیم در اصل ، تفاوت طول جغرافیایی و تقاوت عرض جعرافیایی را محاسبه کرده ایم و گویی که انها را روی دستگاه مختصات مسطحی روی زمین تصویر میکنیم و با استفاده از قانون فیثاغورث اندازه خط واصل فرضی آن را مییابیم. که با توجه به گرد بودن زمین و دقت لازم ، این عمل محمل خطاست . در واقع عدد به دست آمده همیشه بیشتر !!! از مقدار واقعیست بالاخص در مواردی که فاصله زیاد و قابل توجه باشد. :nerd:
                    یعنی کمان رو به رو به هر درجه ، 111317.099692 متره . نه خط راست که ما به راحتی از فیثاغورث استفاده کنیم.
                    مشغول در این دنیای آکل و ماکول .......

                    دیدگاه


                      #25
                      پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

                      با عرض سلام خدمت آقای جعفری
                      من هم یه ماژول gpsخریدم اما هنوز نتونستم دیتا ازش بگیرم
                      مشکل برد و مدار نداره
                      فکر می کنم مشکل از برنامه باشه
                      می خواستم اگه میشه کمکم کنید
                      شما با دستور input داده ها رو گرفتید یا waitkey یا چیز دیگه؟
                      اصلا" txd ماژول باید به txd میکرو وصل باشه یا باید به rxd وصل شه ؟
                      اگه میشه تیکه ی اول برنامتون هم بگذارید
                      مرسی

                      دیدگاه


                        #26
                        پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

                        سلام دوست عزیز
                        ورودتو به انجمن خوش آمد میگم.
                        من در خدمتم ، شما سوالتونو دقیق تر مطرح کنید ، یعنی بگید تا کجا پیش رفتید ، با چه میکرویی کار می کنید و ....
                        1- txd ماژول باید به rxd میکرو وصل بشه ، دیتا از txd خارج شده و به rxd که در واقع پورت ورودی سخت افزاری سریال میکروتون هست وارد میشه.
                        2- من در زبان basic pro از وقفه خارجی مربوط به ریجستر ورودی سریال استفاده کردم ، در این حالت سریعا بعد از این که داده در بایت پیش فرض ورودی سریال قرار گرفت ، اونو در متغیر دلخواه خودم (b0) قرار میدم و بیت پرچم ورودی رو صفر کردم تا میکرو برای دریافت بعدی آماده بشه .
                        من کلا این روشو به استفاده از serin ترجیح میدم ، چون دقتش در کل بالاتره (اگر قانع نشدید ، بگین تا دلیل بیارم :agree .
                        3- همون طور که قبلا گفتم ، اول gps رو به کامپیوتر وصل کنین و شکل داده هاشو ببینین و از صحت عملکردش مطمئن بشین .
                        4- به باود ریت کاری ، پروتکل استفاده شده در gps برای برقراری ارتباط سریال و پشتیبانی میکروتون ترجیحا به صورت سخت افزاری از این پروتکل و استاندارد ولتاژ استفاده شده (rs232,ttl,...) دقت کنین.
                        مشغول در این دنیای آکل و ماکول .......

                        دیدگاه


                          #27
                          پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

                          با سلام خدمت همه دوستان
                          من هم یک ماژول GPS تهیه کردم با آنتن برای شروع من چند مشکل اساسی دارم که میخوام با کمک دوستان آنها را برطرف کنم
                          من با بیسکام کار میکنم ولی تازه شروع کردم پایه برنام نویسی دارم ولی با بیسکام تازه کار کردن را شروع کردم
                          در ابتدا می خوام GPS را به کامپیوتر وصل کنم وخروجی اطلاعات آن را ببینم ولی نمی دانم چگونه وبا چه نرم افزاری این کار را انجام بدهم
                          آیا GPS در داخل خانه انتن میدهد(کار میکند)
                          استفاده از ولتاژ 5 ولت برای آن مشکلی ایجاد نمی کند
                          من روی برد برد GPS را بسته واز طریق MAX232 آن را به پورت کامپیوتر متصل کردم به COM1 ولی در برنامه ترمینال چیزی را مشاهده نمی کنم
                          از دوستانی که قبلا این کارو کردن کمک کنند

                          دیدگاه


                            #28
                            پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

                            خوب دوستان. حالا اگه بخایم نقطه ی بدست آمده رو روی نقشه روی یه lcd نشون بدیم باید چکار کنیم؟ حتماً باید نقشه های مخصوص GPS رو داشته باشیم؟ لطفاً ایده هایی که به ذهنتون میرسه برای این کار مطرح کنید.

                            دیدگاه


                              #29
                              پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

                              با سلام
                              من از atmega128Lاستفاده می کنم
                              gps من باود 9600 رو ساپورت می کنه
                              gps من روی پشت بوم کار کرد یعنی led ماژول چشمک می زد بعد از حدود 30 ثانیه اما دیتا رو روی lcd نمایش نمی داد
                              از uartسخت افزاری و نرم افزاری هم استفاده کردم اما جواب نگرفتم
                              من هم با bascome کار می کنم
                              اکه می شه قسمت اول برنامه خودتون روی سایت بگذارید تا ببینم کجای کارم ایراد داره
                              مرسی

                              دیدگاه


                                #30
                                پاسخ : سوال در رابطه با gps (ماژول و مرکز مختصات آن)

                                جواب m3hd1 :
                                1- برای اتصال به کامپیوتر راحت ترین برنامه ، هایپرترمینال ویندوز هست. برای تست عملکرد max232 و درستی تنظیمات سریالتون ، بعد از برقراری ارتباط ، gps رو به max 232 وصل نکنین و بجاش دوتا پایه متناظر خروجی از max رو که به pc وصل کردین ، با یک سیم به هم متصل کنین.(یعنی اگر r2in و t2out رو به pc وصل کردین ، r2out و t2in رو به هم وصل کنین) در این حالت در پنجره هایپرترمینال هر چیزی رو که تایپ کنین ، باید دوبار نمایش داده بشه .
                                2- gps معمولا به سختی داخل خانه آنتن میده و بهتره توی یک فضای باز یا بدون سقف کار کنین .
                                3- ولتاژ کاری gps کاملا بستگی به مدلش داره و حتما به دیتاشیتش مراجعه کنین .
                                جواب pmomeni:
                                1- این که بعد از حدود 30 ثانیه کار کرد توی gps های عادی ، طبیعیه ، اگر به دیتا شیتش مراجعه کنین ، start time شو در دماهای مختلف (با دید کامل) نوشته که در عمل بستگی به مکان قرار گیری ، شرایط جوی و .... داره.
                                2- این که شما نتونستین اطلاعات رو با میکرو بگیرین و روی lcd نمایش بدین ، حدس من اینه که شما دقت نکردیم که هر کاراکتر ورودی ، یک بایته و بدون در نظر گرفتن حجم لازم برای قرار گیری داده ها ، اونارو سزیعا بعد از دریافت از gps ، روی lcd نمایش دادین ، که در صورتی که عمل دریافت داده و نمایششو درست انجام داده باشین ، هیچ چیز با توجه به نرخ بالای 9600 ، نمیبینین ! چون قبل از این که lcd فرصت نمایش پیدا کنه ، کاراکتر عوض میشه. ( به احتمالی که من میدم ، شما هر یک کاراکترو ، مجزا به lcd فرستادین در حالی که باید داده های لازمو در یک آرایه جمع آوری کرد ، و با هم مورد بررسی قرار داد) .
                                3- بخشی از برنامه من که مربوط به دریافت داده از gps و قرار دادنش در b0 هست ، به درد شما نمی خوره ، چون من از وقفه های pic استفاده کردم و ریجسترهای مربوط به ارتباط سریال ، که کاملا با avr متفاوته . اگر باز هم اصرار دارید و فکر میکنین به درد میخوره ، بگین تا بزارم .
                                مشغول در این دنیای آکل و ماکول .......

                                دیدگاه

                                لطفا صبر کنید...
                                X