Social Icons

الخميس، 16 يوليو 2015

SKYLAB SKM53 GPS


نظام التموضوع العالمي SKYLAB SKM53


SKYLAB SKM53 هو موديول ينتمي لعائلة الدارات المستقبلة لبيانات الأقمار الصناعية الخاصة بنظام التموضع العالمي GPS تتميز بسهولة استخدامها و برمجته .



سنقوم بهذه التجربة بتوصيله للاردوينو و أخذ البيانات الرئيسية القادمة من الأقمار الصناعية و عرضها على شاشة الحاسوب .

سنحتاج في هذه التجربة إلى :
1)بطاقة أردوينو
2) 
SKYLAB SKM53 GPS
3)لوحة توصيل BreadBoard
4)اسلاك توصيل jumper






بالغالب لا يعمل ال 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) نحمل البرنامج التالي :





بعدها تستطيع فتح نافذة السيريال و قراءة البيانات الخاصة بنظام التموضع العالمي . 


ِشرح البرنامج : 

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


 if (SKM53.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 
    SKM53.f_get_position(&fLat, &fLon, &age);

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


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





5 التعليقات :

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