الخميس، 18 يونيو، 2015

نظام التموضع العالمي NEO-6M

NEO-6M GPS 




 NEO-6M  هو موديول ينتمي لعائلة الدارات المستقبلة لبيانات الأقمار الصناعية الخاصة بنظام التموضع العالمي GPS تتميز بسهولة استخدامها و برمجتها اضافة لزمن تشغيل سريع .

تتميز هذه الدارة بوجود بطارية احتياطية , و ذاكرة فير قابلة للمسح كهربائياً EEPROM لتخزين الأعدادات الخاصة بال GPS , وتتميز بتقنية تمنع التشويش المقصود عليها Anti jamming technology , بالأضافة لدعمها اخراج البيانات ببروتوكولات مختلفه (UART , USB , SPI ) .



ما سنقوم به بهذه التجربة هي الحصول على بيانات المتعلقة بالاحداثيات الجغرافية , الوقت و التاريخ .



سنحتاج لتنفيذ هذه التجربة إلى : 

لوحة أردوينو 
الموديول NEO-6M 
اسلاك توصيل Jumper
لوحة توصيل BreadBoard



يجب الأنتباه لموضوع التغذية لمثل هذه الدارات اذ انها تعتمد على تغذية 3.3 فولت و اي فولتية أعلى من هذه الفولتية , سواءاً فولتية التغذية vcc او الفولتية المطبقة على المداخل و المخارج I/O 



بالغالب لا يعمل ال GPS داخل الأماكن المغلقه لذلك يفضل تجربته في مكان مفتوح حتى تحصل على نتائج صحيحة .
يوجد على هذا الموديول ضوء LED اذا التقط البيانات من القمر الصناعي يتوهج ببطئ , غير ذلك يكون يتوهج بشكل سريع 



سأقسم هذه التجربة إلى قسمين : 

1) سيتم برمجته بواسطة الحاسوب مع برمجية مخصصة من الشركة المصنعه لهذه القطعه 

2) برمجته بواسطة الأردوينو .

القسم الأول : 

1) نفتح برنامج الأردوينو و نحمل فيه برنامج فارغ Blank code كما يلي  : 
// Blank Code
//Mohannad Rawashdeh
void setup() 
{
}

void loop() 
{
}


2) نقوم بتوصيل ال GPS بالأردوينو كما يلي  :





3) نذهب لبرنامج U Center و نختار رقم المنفذ التسلسلي الخاص بالأردوينو .






4) تأكد من ضبط سرعه الاتصال عند 9600 و من اختيار NEO 6 كما في الصورة . 





5) بعدها نضغط Connect و نرى تحديث البيانات من الGPS على الشاشة  .



الجزء الثاني : البرمجة بواسطة الأردوينو :
1)سنقوم باغلاق البرنامج السابق " مهم جداً " .
2)نقوم بتغيير التوصيل كما يلي : 


3) نفتح برنامج الأردوينو و نتأكد من وجود مكتبه TinyGPS و وضعها بشكل صحيح في مسار المكتبات الخاصة بالأردوينو  - يمكنك تحميلها من الرابط -

4) استخدام المثال التالي وحمله على الأردوينو 








5) بعد تحميل البرنامج , تأكد من أن الضوء LED في الGPS يتوهج ببطء و افتح نافذة السيريال سترى بيانات ال GPS كما يلي  .







طريقة كتابة البرنامج سهلة , بالبداية الجزء الخاص بالتحقق من وجود بيانات اتصال مع القمر الصناعي هو :


 if (NEO6M.encode(c)) // Did a new valid sentence come in?
        newData = true;

في حالة وجود بيانات سيتم جعل المتغير newData صحيحياً و يتحقق الشرط الخاص بقراءة البيانات الخاصة بال gps

في هذه المتغيرات يتم حفظ القيم المطلوبة مثل الاحداثيات , الوقت , التاريخ : 


    float fLat, fLon;
    unsigned long age;
    int year;
    byte month, day, hour, minute, second, hundredths; 
   

هنا هذين الأمرين يقومان بتخزين قيم الأحداثيات بالمتغيرات المخصصة لهما fLat,fLon 
    NEO6M.f_get_position(&fLat, &fLon, &age);

يتم تخزين الوقت و التاريخ كلاً حسب وحدته من خلال هذا الأمر:



 NEO6M.crack_datetime(&year, &month, &day,&hour, &minute, &second, &hundredth






14 التعليقات :

  1. عمل رائع تشكر عليه وبكامل السورس كود الخاص به

    وفقك الله اخي الغالي .... والى الامام

    ردحذف
  2. االسلام عليكم .
    اخي المبرمجة وين نجيبها او شو مبدئها

    ردحذف
    الردود
    1. اولاً حمّل المكتبه موجو الرابط بالمقال .
      الكود موجود عند النقطه 4
      يرجى قراءة المقال جيداص فالكود المصدري واضح

      حذف
  3. اتمنى اخباريةوامنى ارفاق رابط البرنامج وشكرا

    ردحذف
  4. أزال أحد مشرفي المدونة هذا التعليق.

    ردحذف
  5. أزال أحد مشرفي المدونة هذا التعليق.

    ردحذف
  6. أزال أحد مشرفي المدونة هذا التعليق.

    ردحذف
  7. أزال أحد مشرفي المدونة هذا التعليق.

    ردحذف
  8. أزال أحد مشرفي المدونة هذا التعليق.

    ردحذف
  9. أزال أحد مشرفي المدونة هذا التعليق.

    ردحذف
  10. السلام عليكم
    اخي عندي الموديول اول ما اوصل له الفولت يومض ومضه واحدة و بعدها ينطفئ شو المشكلة لو سمحت ؟

    ردحذف
    الردود
    1. قد يكون عطل من نفس الGPS الذي لديك او ان مصدر الطاقة ضعيف و لا يعطي الفولتية الكافية
      تحقق من عدم وجود SHORT circuit

      حذف

 
Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.